CanvasPtr Canvas::Create(const CanvasDesc& desc) { if (!CreateCanvasClass()) return CanvasPtr(); CanvasPtr canvas(new Canvas(desc)); void* handle = CreateCanvasWindow(desc, canvas, desc.simpleFrame); if (!handle) return CanvasPtr(); ResizeCanvasWindow(desc, handle); canvas->handle = handle; canvas->deviceContext = GetDC((HWND)handle); return canvas; }
TSTPlotter::TSTPlotter(QWidget *parent) : QMainWindow(parent) { plt = new Plotter(CanvasPtr(),this); data = new CurveData(200); plt->xScale()->setFlags(Scale::ManualDiapason); plt->yScale()->setFlags(Scale::ManualDiapason); plt->yScale()->setManualDiapason(-12,12); plt->xScale()->setManualDiapason(0,80); crv = new Curve( "Test curve", "l/s", plt->xScale(), plt->yScale(), data ); plt->attachDynamicItem(crv); Grid *grid = new Grid(); plt->attachStaticItem(grid); setCentralWidget(plt); newData(); };
void Canvas::doFrame(bool bPythonAvailable) { s_pActiveCanvas = shared_from_this(); emitPreRenderSignal(); if (!m_pPlayer->isStopping()) { ScopeTimer Timer(RenderProfilingZone); if (bPythonAvailable) { Py_BEGIN_ALLOW_THREADS; try { render(); } catch(...) { Py_BLOCK_THREADS; throw; } Py_END_ALLOW_THREADS; } else { render(); } } emitFrameEndSignal(); s_pActiveCanvas = CanvasPtr(); }