23class GraphicsBufferAllocator;
24class QPainterSwapchainSlot;
25class QPainterSwapchain;
32class WaylandQPainterBackend;
40 std::optional<OutputLayerBeginFrameInfo>
beginFrame()
override;
41 bool endFrame(
const QRegion &renderedRegion,
const QRegion &damagedRegion)
override;
53 std::unique_ptr<QPainterSwapchain> m_swapchain;
54 std::shared_ptr<QPainterSwapchainSlot> m_back;
55 std::chrono::steady_clock::time_point m_renderStart;
56 std::chrono::nanoseconds m_renderTime;
69 std::optional<OutputLayerBeginFrameInfo>
beginFrame()
override;
70 bool endFrame(
const QRegion &renderedRegion,
const QRegion &damagedRegion)
override;
76 std::unique_ptr<QPainterSwapchain> m_swapchain;
77 std::shared_ptr<QPainterSwapchainSlot> m_back;
78 std::chrono::steady_clock::time_point m_renderStart;
79 std::chrono::nanoseconds m_renderTime;
91 void present(
Output *output,
const std::shared_ptr<OutputFrame> &frame)
override;
96 void createOutput(
Output *waylandOutput);
100 std::unique_ptr<WaylandQPainterPrimaryLayer> primaryLayer;
101 std::unique_ptr<WaylandQPainterCursorLayer> cursorLayer;
105 std::unique_ptr<GraphicsBufferAllocator> m_allocator;
106 std::map<Output *, Layers> m_outputs;
Class encapsulating all Wayland data structures needed by the Egl backend.
OutputLayer * primaryLayer(Output *output) override
WaylandQPainterBackend(WaylandBackend *b)
GraphicsBufferAllocator * graphicsBufferAllocator() const override
~WaylandQPainterBackend() override
OutputLayer * cursorLayer(Output *output) override
void present(Output *output, const std::shared_ptr< OutputFrame > &frame) override
std::chrono::nanoseconds queryRenderTime() const override
~WaylandQPainterCursorLayer() override
bool endFrame(const QRegion &renderedRegion, const QRegion &damagedRegion) override
std::optional< OutputLayerBeginFrameInfo > beginFrame() override
WaylandQPainterCursorLayer(WaylandOutput *output, WaylandQPainterBackend *backend)
std::optional< OutputLayerBeginFrameInfo > beginFrame() override
std::chrono::nanoseconds queryRenderTime() const override
QRegion accumulateDamage(int bufferAge) const
WaylandQPainterPrimaryLayer(WaylandOutput *output, WaylandQPainterBackend *backend)
bool endFrame(const QRegion &renderedRegion, const QRegion &damagedRegion) override
~WaylandQPainterPrimaryLayer() override