#pragma once #include "asio.hpp" #include "Plot.h" #include #include #include #include #include #include namespace YSG { struct PlotPrivate { explicit PlotPrivate(Plot* plot) : q(plot) {}; Plot *q{}; int mRefreshTimesPreSecond = 30; TimerThread* mTimerThread{}; std::unique_ptr mRenderTimer; bool mRenderEnabled = false; std::atomic_bool mDestroying{false}; std::atomic_int mActiveRenderTasks{0}; std::condition_variable mRenderTaskDone; std::mutex mRenderTaskMutex; QSize mRenderSize; RenderAble::RenderPipeline mPipeline; SpinLock mBufferLock, mRenderLock, mPrepareDataLock, mMustPrepareDataLock; QColor mBackground = Qt::black; PerformanceShower *mShower{}; }; }