[plasma/kwin] src: core/outputlayer: remove doBeginFrame and doEndFrame
Xaver Hugl <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit aaed814f77d22231f60cfcd66f326e4e916ca34a by Xaver Hugl.
Committed on 18/08/2026 at 18:42.
Pushed by zamundaaa into branch 'master'.
core/outputlayer: remove doBeginFrame and doEndFrame
They're redundant, the non-virtual functions just called them.
M +2 -2 src/backends/drm/drm_egl_layer.cpp
M +2 -2 src/backends/drm/drm_egl_layer.h
M +2 -2 src/backends/drm/drm_virtual_egl_layer.cpp
M +2 -2 src/backends/drm/drm_virtual_egl_layer.h
M +2 -2 src/backends/virtual/virtual_egl_backend.cpp
M +2 -2 src/backends/virtual/virtual_egl_backend.h
M +4 -4 src/backends/wayland/wayland_egl_backend.cpp
M +4 -4 src/backends/wayland/wayland_egl_backend.h
M +4 -4 src/backends/x11/x11_windowed_egl_backend.cpp
M +4 -4 src/backends/x11/x11_windowed_egl_backend.h
M +0 -10 src/core/outputlayer.cpp
M +2 -5 src/core/outputlayer.h
M +2 -2 src/plugins/colorpicker/colorpickerlayer.cpp
M +3 -3 src/plugins/colorpicker/colorpickerlayer.h
M +2 -2 src/plugins/screencast/screencastlayer.cpp
M +3 -3 src/plugins/screencast/screencastlayer.h
M +2 -2 src/plugins/screenshot/screenshotlayer.cpp
M +3 -3 src/plugins/screenshot/screenshotlayer.h
https://invent.kde.org/plasma/kwin/-/commit/aaed814f77d22231f60cfcd66f326e4e916ca34a
diff --git a/src/backends/drm/drm_egl_layer.cpp b/src/backends/drm/drm_egl_layer.cpp
index 28830eb0e2f..1cd5ac6d3bf 100644
--- a/src/backends/drm/drm_egl_layer.cpp
+++ b/src/backends/drm/drm_egl_layer.cpp
@@ -50,7 +50,7 @@ EglGbmLayer::EglGbmLayer(EglGbmBackend *eglBackend, DrmGpu *gpu, DrmPlane::TypeI
{
}
-std::optional<OutputLayerBeginFrameInfo> EglGbmLayer::doBeginFrame()
+std::optional<OutputLayerBeginFrameInfo> EglGbmLayer::beginFrame()
{
m_scanoutBuffer.reset();
return m_surface.startRendering(targetRect().size(),
@@ -67,7 +67,7 @@ std::optional<OutputLayerBeginFrameInfo> EglGbmLayer::doBeginFrame()
m_requiredAlphaBits);
}
-bool EglGbmLayer::doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
+bool EglGbmLayer::endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
{
return m_surface.endRendering(damagedDeviceRegion, frame);
}
diff --git a/src/backends/drm/drm_egl_layer.h b/src/backends/drm/drm_egl_layer.h
index 2debcfe266a..13bafb1ab52 100644
--- a/src/backends/drm/drm_egl_layer.h
+++ b/src/backends/drm/drm_egl_layer.h
@@ -28,8 +28,8 @@ public:
explicit EglGbmLayer(EglGbmBackend *eglBackend, DrmPlane *plane);
explicit EglGbmLayer(EglGbmBackend *eglBackend, DrmGpu *gpu, DrmPlane::TypeIndex type);
- std::optional<OutputLayerBeginFrameInfo> doBeginFrame() override;
- bool doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) override;
+ std::optional<OutputLayerBeginFrameInfo> beginFrame() override;
+ bool endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) override;
bool preparePresentationTest() override;
std::shared_ptr<DrmFramebuffer> currentBuffer() const override;
void releaseBuffers() override;
diff --git a/src/backends/drm/drm_virtual_egl_layer.cpp b/src/backends/drm/drm_virtual_egl_layer.cpp
index 14869fc0b21..92653d1e7ab 100644
--- a/src/backends/drm/drm_virtual_egl_layer.cpp
+++ b/src/backends/drm/drm_virtual_egl_layer.cpp
@@ -38,7 +38,7 @@ VirtualEglGbmLayer::~VirtualEglGbmLayer()
releaseBuffers();
}
-std::optional<OutputLayerBeginFrameInfo> VirtualEglGbmLayer::doBeginFrame()
+std::optional<OutputLayerBeginFrameInfo> VirtualEglGbmLayer::beginFrame()
{
m_scanoutBuffer.reset();
@@ -82,7 +82,7 @@ std::optional<OutputLayerBeginFrameInfo> VirtualEglGbmLayer::doBeginFrame()
};
}
-bool VirtualEglGbmLayer::doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
+bool VirtualEglGbmLayer::endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
{
m_query->end();
frame->addRenderTimeQuery(std::move(m_query));
diff --git a/src/backends/drm/drm_virtual_egl_layer.h b/src/backends/drm/drm_virtual_egl_layer.h
index 3a66118b764..c698712a5a7 100644
--- a/src/backends/drm/drm_virtual_egl_layer.h
+++ b/src/backends/drm/drm_virtual_egl_layer.h
@@ -33,8 +33,8 @@ public:
VirtualEglGbmLayer(EglGbmBackend *eglBackend, DrmVirtualOutput *output);
~VirtualEglGbmLayer() override;
- std::optional<OutputLayerBeginFrameInfo> doBeginFrame() override;
- bool doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) override;
+ std::optional<OutputLayerBeginFrameInfo> beginFrame() override;
+ bool endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) override;
void releaseBuffers() override;
FormatModifierMap supportedDrmFormats() const override;
diff --git a/src/backends/virtual/virtual_egl_backend.cpp b/src/backends/virtual/virtual_egl_backend.cpp
index 173486d4f15..e8fdb585e7d 100644
--- a/src/backends/virtual/virtual_egl_backend.cpp
+++ b/src/backends/virtual/virtual_egl_backend.cpp
@@ -36,7 +36,7 @@ VirtualEglLayer::~VirtualEglLayer()
(void)m_backend->openglContext()->makeCurrent();
}
-std::optional<OutputLayerBeginFrameInfo> VirtualEglLayer::doBeginFrame()
+std::optional<OutputLayerBeginFrameInfo> VirtualEglLayer::beginFrame()
{
if (!m_backend->openglContext()->makeCurrent()) {
return std::nullopt;
@@ -71,7 +71,7 @@ std::optional<OutputLayerBeginFrameInfo> VirtualEglLayer::doBeginFrame()
};
}
-bool VirtualEglLayer::doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
+bool VirtualEglLayer::endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
{
m_query->end();
if (frame) {
diff --git a/src/backends/virtual/virtual_egl_backend.h b/src/backends/virtual/virtual_egl_backend.h
index 9622e3e261b..f966f4bd50a 100644
--- a/src/backends/virtual/virtual_egl_backend.h
+++ b/src/backends/virtual/virtual_egl_backend.h
@@ -33,8 +33,8 @@ public:
VirtualEglLayer(BackendOutput *output, VirtualEglBackend *backend);
~VirtualEglLayer() override;
- std::optional<OutputLayerBeginFrameInfo> doBeginFrame() override;
- bool doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) override;
+ std::optional<OutputLayerBeginFrameInfo> beginFrame() override;
+ bool endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) override;
FormatModifierMap supportedDrmFormats() const override;
void releaseBuffers() override;
diff --git a/src/backends/wayland/wayland_egl_backend.cpp b/src/backends/wayland/wayland_egl_backend.cpp
index a863bea16e8..2462beab7fe 100644
--- a/src/backends/wayland/wayland_egl_backend.cpp
+++ b/src/backends/wayland/wayland_egl_backend.cpp
@@ -53,7 +53,7 @@ GLFramebuffer *WaylandEglLayer::fbo() const
return m_buffer->framebuffer();
}
-std::optional<OutputLayerBeginFrameInfo> WaylandEglLayer::doBeginFrame()
+std::optional<OutputLayerBeginFrameInfo> WaylandEglLayer::beginFrame()
{
if (!m_backend->openglContext()->makeCurrent()) {
qCCritical(KWIN_WAYLAND_BACKEND) << "Make Context Current failed";
@@ -106,7 +106,7 @@ std::optional<OutputLayerBeginFrameInfo> WaylandEglLayer::doBeginFrame()
};
}
-bool WaylandEglLayer::doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
+bool WaylandEglLayer::endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
{
m_query->end();
if (frame) {
@@ -156,7 +156,7 @@ WaylandEglCursorLayer::~WaylandEglCursorLayer()
(void)m_backend->openglContext()->makeCurrent();
}
-std::optional<OutputLayerBeginFrameInfo> WaylandEglCursorLayer::doBeginFrame()
+std::optional<OutputLayerBeginFrameInfo> WaylandEglCursorLayer::beginFrame()
{
if (!m_backend->openglContext()->makeCurrent()) {
qCCritical(KWIN_WAYLAND_BACKEND) << "Make Context Current failed";
@@ -202,7 +202,7 @@ std::optional<OutputLayerBeginFrameInfo> WaylandEglCursorLayer::doBeginFrame()
};
}
-bool WaylandEglCursorLayer::doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
+bool WaylandEglCursorLayer::endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
{
m_query->end();
if (frame) {
diff --git a/src/backends/wayland/wayland_egl_backend.h b/src/backends/wayland/wayland_egl_backend.h
index fff1ac830bb..ff99d144cd4 100644
--- a/src/backends/wayland/wayland_egl_backend.h
+++ b/src/backends/wayland/wayland_egl_backend.h
@@ -41,8 +41,8 @@ public:
~WaylandEglLayer() override;
GLFramebuffer *fbo() const;
- std::optional<OutputLayerBeginFrameInfo> doBeginFrame() override;
- bool doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) override;
+ std::optional<OutputLayerBeginFrameInfo> beginFrame() override;
+ bool endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) override;
bool earlyScanoutChecks() override;
bool importScanoutBuffer(GraphicsBuffer *buffer, const std::shared_ptr<OutputFrame> &frame) override;
FormatModifierMap supportedDrmFormats() const override;
@@ -66,8 +66,8 @@ public:
WaylandEglCursorLayer(WaylandOutput *output, WaylandEglBackend *backend);
~WaylandEglCursorLayer() override;
- std::optional<OutputLayerBeginFrameInfo> doBeginFrame() override;
- bool doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) override;
+ std::optional<OutputLayerBeginFrameInfo> beginFrame() override;
+ bool endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) override;
FormatModifierMap supportedDrmFormats() const override;
void releaseBuffers() override;
diff --git a/src/backends/x11/x11_windowed_egl_backend.cpp b/src/backends/x11/x11_windowed_egl_backend.cpp
index 92d6bd37400..13d5bc39b82 100644
--- a/src/backends/x11/x11_windowed_egl_backend.cpp
+++ b/src/backends/x11/x11_windowed_egl_backend.cpp
@@ -32,7 +32,7 @@ X11WindowedEglPrimaryLayer::~X11WindowedEglPrimaryLayer()
{
}
-std::optional<OutputLayerBeginFrameInfo> X11WindowedEglPrimaryLayer::doBeginFrame()
+std::optional<OutputLayerBeginFrameInfo> X11WindowedEglPrimaryLayer::beginFrame()
{
if (!m_backend->openglContext()->makeCurrent()) {
return std::nullopt;
@@ -74,7 +74,7 @@ std::optional<OutputLayerBeginFrameInfo> X11WindowedEglPrimaryLayer::doBeginFram
};
}
-bool X11WindowedEglPrimaryLayer::doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
+bool X11WindowedEglPrimaryLayer::endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
{
m_query->end();
if (frame) {
@@ -110,7 +110,7 @@ X11WindowedEglCursorLayer::~X11WindowedEglCursorLayer()
m_texture.reset();
}
-std::optional<OutputLayerBeginFrameInfo> X11WindowedEglCursorLayer::doBeginFrame()
+std::optional<OutputLayerBeginFrameInfo> X11WindowedEglCursorLayer::beginFrame()
{
if (!m_backend->openglContext()->makeCurrent()) {
return std::nullopt;
@@ -134,7 +134,7 @@ std::optional<OutputLayerBeginFrameInfo> X11WindowedEglCursorLayer::doBeginFrame
};
}
-bool X11WindowedEglCursorLayer::doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
+bool X11WindowedEglCursorLayer::endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
{
EglContext *context = m_backend->openglContext();
QImage buffer(m_framebuffer->size(), QImage::Format_RGBA8888_Premultiplied);
diff --git a/src/backends/x11/x11_windowed_egl_backend.h b/src/backends/x11/x11_windowed_egl_backend.h
index 555ad941f32..6b9bf839218 100644
--- a/src/backends/x11/x11_windowed_egl_backend.h
+++ b/src/backends/x11/x11_windowed_egl_backend.h
@@ -28,8 +28,8 @@ public:
X11WindowedEglPrimaryLayer(X11WindowedEglBackend *backend, X11WindowedOutput *output);
~X11WindowedEglPrimaryLayer() override;
- std::optional<OutputLayerBeginFrameInfo> doBeginFrame() override;
- bool doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) override;
+ std::optional<OutputLayerBeginFrameInfo> beginFrame() override;
+ bool endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) override;
FormatModifierMap supportedDrmFormats() const override;
void releaseBuffers() override;
@@ -49,8 +49,8 @@ public:
X11WindowedEglCursorLayer(X11WindowedEglBackend *backend, X11WindowedOutput *output);
~X11WindowedEglCursorLayer() override;
- std::optional<OutputLayerBeginFrameInfo> doBeginFrame() override;
- bool doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) override;
+ std::optional<OutputLayerBeginFrameInfo> beginFrame() override;
+ bool endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) override;
FormatModifierMap supportedDrmFormats() const override;
void releaseBuffers() override;
diff --git a/src/core/outputlayer.cpp b/src/core/outputlayer.cpp
index 960f1b82077..ab76311580c 100644
--- a/src/core/outputlayer.cpp
+++ b/src/core/outputlayer.cpp
@@ -118,16 +118,6 @@ bool OutputLayer::importScanoutBuffer(GraphicsBuffer *buffer, const std::shared_
return false;
}
-std::optional<OutputLayerBeginFrameInfo> OutputLayer::beginFrame()
-{
- return doBeginFrame();
-}
-
-bool OutputLayer::endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame)
-{
- return doEndFrame(renderedDeviceRegion, damagedDeviceRegion, frame);
-}
-
void OutputLayer::setScanoutCandidate(SurfaceItem *item)
{
if (m_scanoutCandidate && item != m_scanoutCandidate) {
diff --git a/src/core/outputlayer.h b/src/core/outputlayer.h
index 8bbf93495c5..018d75d8482 100644
--- a/src/core/outputlayer.h
+++ b/src/core/outputlayer.h
@@ -95,8 +95,8 @@ public:
*/
virtual bool preparePresentationTest();
- std::optional<OutputLayerBeginFrameInfo> beginFrame();
- bool endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame);
+ virtual std::optional<OutputLayerBeginFrameInfo> beginFrame() = 0;
+ virtual bool endFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) = 0;
/**
* Do checks if the current configuration of the layer could possibly work.
@@ -158,9 +158,6 @@ Q_SIGNALS:
void repaintScheduled();
protected:
- virtual std::optional<OutputLayerBeginFrameInfo> doBeginFrame() = 0;
- virtual bool doEndFrame(const Region &renderedDeviceRegion, const Region &damagedDeviceRegion, OutputFrame *frame) = 0;
-
const OutputLayerType m_type;
Region m_repaints;
QPointF m_hotspot;
diff --git a/src/plugins/colorpicker/colorpickerlayer.cpp b/src/plugins/colorpicker/colorpickerlayer.cpp
index 2778d93f714..d05ec121528 100644
--- a/src/plugins/colorpicker/colorpickerlayer.cpp
+++ b/src/plugins/colorpicker/colorpickerlayer.cpp
@@ -19,7 +19,7 @@ FormatModifierMap ColorPickerLayer::supportedDrmFormats() const
return {};
}
-std::optional<OutputLayerBeginFrameInfo> ColorPickerLayer::doBeginFrame()
+std::optional<OutputLayerBeginFrameInfo> ColorPickerLayer::beginFrame()
{
return OutputLayerBeginFrameInfo{
.renderTarget = RenderTarget(m_buffer),
@@ -27,7 +27,7 @@ std::optional<OutputLayerBeginFrameInfo> ColorPickerLayer::doBeginFrame()
};
}
-bool ColorPickerLayer::doEndFrame(const Region &renderedRegion, const Region &damagedRegion, OutputFrame *frame)
+bool ColorPickerLayer::endFrame(const Region &renderedRegion, const Region &damagedRegion, OutputFrame *frame)
{
return true;
}
diff --git a/src/plugins/colorpicker/colorpickerlayer.h b/src/plugins/colorpicker/colorpickerlayer.h
index 9d3c3c4488c..9dd6add972c 100644
--- a/src/plugins/colorpicker/colorpickerlayer.h
+++ b/src/plugins/colorpicker/colorpickerlayer.h
@@ -19,10 +19,10 @@ public:
FormatModifierMap supportedDrmFormats() const override;
void releaseBuffers() override;
-private:
- std::optional<OutputLayerBeginFrameInfo> doBeginFrame() override;
- bool doEndFrame(const Region &renderedRegion, const Region &damagedRegion, OutputFrame *frame) override;
+ std::optional<OutputLayerBeginFrameInfo> beginFrame() override;
+ bool endFrame(const Region &renderedRegion, const Region &damagedRegion, OutputFrame *frame) override;
+private:
GLFramebuffer *const m_buffer;
};
diff --git a/src/plugins/screencast/screencastlayer.cpp b/src/plugins/screencast/screencastlayer.cpp
index bbaf40702b6..fc2bfce0ed2 100644
--- a/src/plugins/screencast/screencastlayer.cpp
+++ b/src/plugins/screencast/screencastlayer.cpp
@@ -28,7 +28,7 @@ FormatModifierMap ScreencastLayer::supportedDrmFormats() const
return m_formats;
}
-std::optional<OutputLayerBeginFrameInfo> ScreencastLayer::doBeginFrame()
+std::optional<OutputLayerBeginFrameInfo> ScreencastLayer::beginFrame()
{
return OutputLayerBeginFrameInfo{
.renderTarget = RenderTarget(m_buffer),
@@ -36,7 +36,7 @@ std::optional<OutputLayerBeginFrameInfo> ScreencastLayer::doBeginFrame()
};
}
-bool ScreencastLayer::doEndFrame(const Region &renderedRegion, const Region &damagedRegion, OutputFrame *frame)
+bool ScreencastLayer::endFrame(const Region &renderedRegion, const Region &damagedRegion, OutputFrame *frame)
{
return true;
}
diff --git a/src/plugins/screencast/screencastlayer.h b/src/plugins/screencast/screencastlayer.h
index fe3b0c5a5c7..3d563bd8299 100644
--- a/src/plugins/screencast/screencastlayer.h
+++ b/src/plugins/screencast/screencastlayer.h
@@ -19,10 +19,10 @@ public:
FormatModifierMap supportedDrmFormats() const override;
void releaseBuffers() override;
-private:
- std::optional<OutputLayerBeginFrameInfo> doBeginFrame() override;
- bool doEndFrame(const Region &renderedRegion, const Region &damagedRegion, OutputFrame *frame) override;
+ std::optional<OutputLayerBeginFrameInfo> beginFrame() override;
+ bool endFrame(const Region &renderedRegion, const Region &damagedRegion, OutputFrame *frame) override;
+private:
const FormatModifierMap m_formats;
GLFramebuffer *m_buffer = nullptr;
Region m_bufferDamage;
diff --git a/src/plugins/screenshot/screenshotlayer.cpp b/src/plugins/screenshot/screenshotlayer.cpp
index f29c60f66d4..c1f78e33ead 100644
--- a/src/plugins/screenshot/screenshotlayer.cpp
+++ b/src/plugins/screenshot/screenshotlayer.cpp
@@ -19,7 +19,7 @@ FormatModifierMap ScreenshotLayer::supportedDrmFormats() const
return {};
}
-std::optional<OutputLayerBeginFrameInfo> ScreenshotLayer::doBeginFrame()
+std::optional<OutputLayerBeginFrameInfo> ScreenshotLayer::beginFrame()
{
return OutputLayerBeginFrameInfo{
.renderTarget = RenderTarget(m_buffer),
@@ -27,7 +27,7 @@ std::optional<OutputLayerBeginFrameInfo> ScreenshotLayer::doBeginFrame()
};
}
-bool ScreenshotLayer::doEndFrame(const Region &renderedRegion, const Region &damagedRegion, OutputFrame *frame)
+bool ScreenshotLayer::endFrame(const Region &renderedRegion, const Region &damagedRegion, OutputFrame *frame)
{
return true;
}
diff --git a/src/plugins/screenshot/screenshotlayer.h b/src/plugins/screenshot/screenshotlayer.h
index f4bbb5d0018..01f69734c06 100644
--- a/src/plugins/screenshot/screenshotlayer.h
+++ b/src/plugins/screenshot/screenshotlayer.h
@@ -19,10 +19,10 @@ public:
FormatModifierMap supportedDrmFormats() const override;
void releaseBuffers() override;
-private:
- std::optional<OutputLayerBeginFrameInfo> doBeginFrame() override;
- bool doEndFrame(const Region &renderedRegion, const Region &damagedRegion, OutputFrame *frame) override;
+ std::optional<OutputLayerBeginFrameInfo> beginFrame() override;
+ bool endFrame(const Region &renderedRegion, const Region &damagedRegion, OutputFrame *frame) override;
+private:
GLFramebuffer *const m_buffer;
};