23class EglPixmapTexturePrivate;
24class SoftwareVsyncMonitor;
25class X11StandaloneBackend;
27class GLRenderTimeQuery;
34 std::optional<OutputLayerBeginFrameInfo>
beginFrame()
override;
35 bool endFrame(
const QRegion &renderedRegion,
const QRegion &damagedRegion)
override;
54 void endFrame(
const QRegion &renderedRegion,
const QRegion &damagedRegion);
55 void present(
Output *output,
const std::shared_ptr<OutputFrame> &frame)
override;
65 void screenGeometryChanged();
66 void presentSurface(EGLSurface
surface,
const QRegion &damage,
const QRect &screenGeometry);
67 void vblank(std::chrono::nanoseconds timestamp);
68 EGLSurface createSurface(xcb_window_t window);
71 std::unique_ptr<SoftwareVsyncMonitor> m_vsyncMonitor;
72 std::unique_ptr<OverlayWindow> m_overlayWindow;
74 std::unique_ptr<GLFramebuffer> m_fbo;
76 QRegion m_lastRenderedRegion;
77 std::unique_ptr<EglLayer> m_layer;
78 std::unique_ptr<GLRenderTimeQuery> m_query;
79 int m_havePostSubBuffer =
false;
80 bool m_havePlatformBase =
false;
82 std::shared_ptr<OutputFrame> m_frame;
94 void onDamage()
override;
106 void update(
const QRegion ®ion)
override;
EGLSurface surface() const
EglBackend(::Display *display, X11StandaloneBackend *platform)
bool initRenderingContext()
EGLConfig chooseBufferConfig()
std::chrono::nanoseconds queryRenderTime()
OverlayWindow * overlayWindow() const override
void present(Output *output, const std::shared_ptr< OutputFrame > &frame) override
void endFrame(const QRegion &renderedRegion, const QRegion &damagedRegion)
std::unique_ptr< SurfaceTexture > createSurfaceTextureX11(SurfacePixmapX11 *texture) override
OutputLayerBeginFrameInfo beginFrame()
OutputLayer * primaryLayer(Output *output) override
EglLayer(EglBackend *backend)
std::chrono::nanoseconds queryRenderTime() const override
std::optional< OutputLayerBeginFrameInfo > beginFrame() override
bool endFrame(const QRegion &renderedRegion, const QRegion &damagedRegion) override
~EglPixmapTexture() override
EglPixmapTexture(EglBackend *backend)
EglSurfaceTextureX11(EglBackend *backend, SurfacePixmapX11 *texture)
void update(const QRegion ®ion) override
OpenGLSurfaceContents texture() const
OpenGLBackend * backend() const