23class GraphicsBufferAllocator;
24class QPainterSwapchainSlot;
25class QPainterSwapchain;
27class VirtualQPainterBackend;
35 std::optional<OutputLayerBeginFrameInfo>
beginFrame()
override;
36 bool endFrame(
const QRegion &renderedRegion,
const QRegion &damagedRegion)
override;
43 std::unique_ptr<QPainterSwapchain> m_swapchain;
44 std::shared_ptr<QPainterSwapchainSlot> m_current;
45 std::chrono::steady_clock::time_point m_renderStart;
46 std::chrono::nanoseconds m_renderTime = std::chrono::nanoseconds::zero();
58 void present(
Output *output,
const std::shared_ptr<OutputFrame> &frame)
override;
62 void addOutput(
Output *output);
63 void removeOutput(
Output *output);
65 std::unique_ptr<GraphicsBufferAllocator> m_allocator;
66 std::map<Output *, std::unique_ptr<VirtualQPainterLayer>> m_outputs;
void present(Output *output, const std::shared_ptr< OutputFrame > &frame) override
GraphicsBufferAllocator * graphicsBufferAllocator() const override
VirtualQPainterBackend(VirtualBackend *backend)
VirtualQPainterLayer * primaryLayer(Output *output) override
~VirtualQPainterBackend() override
std::chrono::nanoseconds queryRenderTime() const override
std::optional< OutputLayerBeginFrameInfo > beginFrame() override
bool endFrame(const QRegion &renderedRegion, const QRegion &damagedRegion) override
VirtualQPainterLayer(Output *output, VirtualQPainterBackend *backend)
~VirtualQPainterLayer() override