19class EglSwapchainSlot;
21class GraphicsBufferAllocator;
25class VirtualEglBackend;
26class GLRenderTimeQuery;
33 std::optional<OutputLayerBeginFrameInfo>
beginFrame()
override;
34 bool endFrame(
const QRegion &renderedRegion,
const QRegion &damagedRegion)
override;
36 std::shared_ptr<GLTexture>
texture()
const;
42 std::shared_ptr<EglSwapchain> m_swapchain;
43 std::shared_ptr<EglSwapchainSlot> m_current;
44 std::unique_ptr<GLRenderTimeQuery> m_query;
60 void present(
Output *output,
const std::shared_ptr<OutputFrame> &frame)
override;
68 bool initRenderingContext();
70 void addOutput(
Output *output);
71 void removeOutput(
Output *output);
74 std::unique_ptr<GraphicsBufferAllocator> m_allocator;
75 std::map<Output *, std::unique_ptr<VirtualEglLayer>> m_outputs;
OpenGL Backend using Egl on a GBM surface.
void present(Output *output, const std::shared_ptr< OutputFrame > &frame) override
VirtualEglBackend(VirtualBackend *b)
~VirtualEglBackend() override
VirtualBackend * backend() const
std::unique_ptr< SurfaceTexture > createSurfaceTextureWayland(SurfacePixmap *pixmap) override
GraphicsBufferAllocator * graphicsBufferAllocator() const override
OutputLayer * primaryLayer(Output *output) override
std::pair< std::shared_ptr< KWin::GLTexture >, ColorDescription > textureForOutput(Output *output) const override
std::optional< OutputLayerBeginFrameInfo > beginFrame() override
std::shared_ptr< GLTexture > texture() const
bool endFrame(const QRegion &renderedRegion, const QRegion &damagedRegion) override
std::chrono::nanoseconds queryRenderTime() const override
VirtualEglLayer(Output *output, VirtualEglBackend *backend)