18class EglSwapchainSlot;
20class GraphicsBufferAllocator;
21class X11WindowedBackend;
22class X11WindowedOutput;
23class X11WindowedEglBackend;
24class GLRenderTimeQuery;
32 std::optional<OutputLayerBeginFrameInfo>
beginFrame()
override;
33 bool endFrame(
const QRegion &renderedRegion,
const QRegion &damagedRegion)
override;
36 std::shared_ptr<GLTexture>
texture()
const;
40 std::shared_ptr<EglSwapchain> m_swapchain;
41 std::shared_ptr<EglSwapchainSlot> m_buffer;
42 std::unique_ptr<GLRenderTimeQuery> m_query;
55 std::optional<OutputLayerBeginFrameInfo>
beginFrame()
override;
56 bool endFrame(
const QRegion &renderedRegion,
const QRegion &damagedRegion)
override;
62 std::unique_ptr<GLFramebuffer> m_framebuffer;
63 std::unique_ptr<GLTexture> m_texture;
64 std::unique_ptr<GLRenderTimeQuery> m_query;
84 void endFrame(
Output *output,
const QRegion &renderedRegion,
const QRegion &damagedRegion);
85 void present(
Output *output,
const std::shared_ptr<OutputFrame> &frame)
override;
94 bool initRenderingContext();
98 std::unique_ptr<X11WindowedEglPrimaryLayer> primaryLayer;
99 std::unique_ptr<X11WindowedEglCursorLayer> cursorLayer;
102 std::unique_ptr<GraphicsBufferAllocator> m_allocator;
103 std::map<Output *, Layers> m_outputs;
OpenGL Backend using Egl windowing system over an X overlay window.
OutputLayer * primaryLayer(Output *output) override
void cleanupSurfaces() override
std::pair< std::shared_ptr< GLTexture >, ColorDescription > textureForOutput(Output *output) const override
std::unique_ptr< SurfaceTexture > createSurfaceTextureWayland(SurfacePixmap *pixmap) override
void endFrame(Output *output, const QRegion &renderedRegion, const QRegion &damagedRegion)
~X11WindowedEglBackend() override
OutputLayer * cursorLayer(Output *output) override
X11WindowedBackend * backend() const
GraphicsBufferAllocator * graphicsBufferAllocator() const override
X11WindowedEglBackend(X11WindowedBackend *backend)
void present(Output *output, const std::shared_ptr< OutputFrame > &frame) override
X11WindowedEglCursorLayer(X11WindowedEglBackend *backend, X11WindowedOutput *output)
std::chrono::nanoseconds queryRenderTime() const override
bool endFrame(const QRegion &renderedRegion, const QRegion &damagedRegion) override
~X11WindowedEglCursorLayer() override
std::optional< OutputLayerBeginFrameInfo > beginFrame() override
std::optional< OutputLayerBeginFrameInfo > beginFrame() override
std::chrono::nanoseconds queryRenderTime() const override
X11WindowedEglPrimaryLayer(X11WindowedEglBackend *backend, X11WindowedOutput *output)
~X11WindowedEglPrimaryLayer() override
bool endFrame(const QRegion &renderedRegion, const QRegion &damagedRegion) override
std::shared_ptr< GLTexture > texture() const