IntegralViewer::IntegralViewer(functionPointer f, int width, int height, Decimal startX, Decimal stopX, Decimal startY, Decimal stopY, std::string fname) { myF = f; myWidth = width; myHeight = height; myStartX = startX; myStopX = stopX; myStartY = startY; myStopY = stopY; myRecTime = myTrapTime = 0; myDelay = FRAME; std::stringstream ss; ss.str("Integral of " + fname + " from " + to_string(myStartX) + " to " + to_string(myStopX)); setupCanvas(myTrapCanvas, ss.str() + " using Trapezoids", myDelay); //Canvas for trapezoid method setupCanvas(myRecCanvas, ss.str() + " using Rectangles", myDelay); //Canvas for rectangle method }
void BaseRenderer::renderTiledContent(TileRenderInfo& renderInfo) { const bool visualIndicator = TilesManager::instance()->getShowVisualIndicator(); const SkSize& tileSize = renderInfo.tileSize; SkCanvas canvas; setupCanvas(renderInfo, &canvas); if (!canvas.getDevice()) { // TODO: consider ALOGE ALOGV("Error: No Device"); return; } double before; if (visualIndicator) { canvas.save(); before = currentTimeMS(); } canvas.translate(-renderInfo.x * tileSize.width(), -renderInfo.y * tileSize.height()); canvas.scale(renderInfo.scale, renderInfo.scale); if (renderInfo.tilePainter == NULL) { ALOGV("Error: No tilePainter"); return; } renderInfo.tilePainter->paint(&canvas); if (renderInfo.baseTile && renderInfo.baseTile->backTexture()) checkForPureColor(renderInfo, &canvas); else renderInfo.isPureColor = false; if (visualIndicator) { double after = currentTimeMS(); canvas.restore(); unsigned int updateCount = renderInfo.tilePainter->getUpdateCount() & UPDATE_COUNT_MASK; const int color = updateCount & UPDATE_COUNT_ALPHA_MASK; // only color the invalidated area SkPaint paint; paint.setARGB(color, 0, 255, 0); SkIRect rect; rect.set(0, 0, tileSize.width(), tileSize.height()); canvas.drawIRect(rect, paint); drawTileInfo(&canvas, renderInfo, updateCount, after - before); // paint the tile boundaries paint.setARGB(64, 255, 0, 0); paint.setStrokeWidth(3); canvas.drawLine(0, 0, tileSize.width(), tileSize.height(), paint); paint.setARGB(64, 0, 255, 0); canvas.drawLine(0, tileSize.height(), tileSize.width(), 0, paint); paint.setARGB(128, 0, 0, 255); canvas.drawLine(tileSize.width(), 0, tileSize.width(), tileSize.height(), paint); } renderingComplete(renderInfo, &canvas); }
Viewer::Viewer( const QSurfaceFormat & format , QWidget * parent , Qt::WindowFlags flags) : QMainWindow(parent, flags) , m_ui(new Ui_Viewer) , m_canvas(nullptr) , m_fullscreenShortcut(nullptr) , m_swapIntervalShortcut(nullptr) { m_ui->setupUi(this); setWindowTitle(QApplication::applicationDisplayName()); setup(); setupCanvas(format); restore(); updateAfterFullScreenToggle(); }