Changeset View
Changeset View
Standalone View
Standalone View
plugins/platforms/drm/egl_gbm_backend.h
Show All 18 Lines | |||||
19 | *********************************************************************/ | 19 | *********************************************************************/ | ||
20 | #ifndef KWIN_EGL_GBM_BACKEND_H | 20 | #ifndef KWIN_EGL_GBM_BACKEND_H | ||
21 | #define KWIN_EGL_GBM_BACKEND_H | 21 | #define KWIN_EGL_GBM_BACKEND_H | ||
22 | #include "abstract_egl_backend.h" | 22 | #include "abstract_egl_backend.h" | ||
23 | #include "scene_opengl.h" | 23 | #include "scene_opengl.h" | ||
24 | 24 | | |||
25 | struct gbm_surface; | 25 | struct gbm_surface; | ||
26 | 26 | | |||
27 | namespace KWayland | ||||
28 | { | ||||
29 | namespace Server | ||||
30 | { | ||||
31 | class BufferInterface; | ||||
32 | } | ||||
33 | } | ||||
34 | | ||||
27 | namespace KWin | 35 | namespace KWin | ||
28 | { | 36 | { | ||
29 | class DrmBackend; | 37 | class DrmBackend; | ||
30 | class DrmBuffer; | 38 | class DrmBuffer; | ||
31 | class DrmOutput; | 39 | class DrmOutput; | ||
32 | 40 | | |||
33 | /** | 41 | /** | ||
34 | * @brief OpenGL Backend using Egl on a GBM surface. | 42 | * @brief OpenGL Backend using Egl on a GBM surface. | ||
35 | **/ | 43 | **/ | ||
36 | class EglGbmBackend : public QObject, public AbstractEglBackend | 44 | class EglGbmBackend : public QObject, public AbstractEglBackend | ||
37 | { | 45 | { | ||
38 | Q_OBJECT | 46 | Q_OBJECT | ||
39 | public: | 47 | public: | ||
40 | EglGbmBackend(DrmBackend *b); | 48 | EglGbmBackend(DrmBackend *b); | ||
41 | virtual ~EglGbmBackend(); | 49 | virtual ~EglGbmBackend(); | ||
42 | void screenGeometryChanged(const QSize &size) override; | 50 | void screenGeometryChanged(const QSize &size) override; | ||
43 | SceneOpenGL::TexturePrivate *createBackendTexture(SceneOpenGL::Texture *texture) override; | 51 | SceneOpenGL::TexturePrivate *createBackendTexture(SceneOpenGL::Texture *texture) override; | ||
44 | QRegion prepareRenderingFrame() override; | 52 | QRegion prepareRenderingFrame() override; | ||
45 | void endRenderingFrame(const QRegion &renderedRegion, const QRegion &damagedRegion) override; | 53 | void endRenderingFrame(const QRegion &renderedRegion, const QRegion &damagedRegion) override; | ||
46 | void endRenderingFrameForScreen(int screenId, const QRegion &damage, const QRegion &damagedRegion) override; | 54 | void endRenderingFrameForScreen(int screenId, const QRegion &renderedRegion, const QRegion &damagedRegion) override; | ||
55 | bool directScanoutForScreen(int screenId, KWayland::Server::BufferInterface *buffer) override; | ||||
47 | bool usesOverlayWindow() const override; | 56 | bool usesOverlayWindow() const override; | ||
48 | bool perScreenRendering() const override; | 57 | bool perScreenRendering() const override; | ||
49 | QRegion prepareRenderingForScreen(int screenId) override; | 58 | QRegion prepareRenderingForScreen(int screenId) override; | ||
50 | void init() override; | 59 | void init() override; | ||
51 | 60 | | |||
52 | protected: | 61 | protected: | ||
53 | void present() override; | 62 | void present() override; | ||
54 | void cleanupSurfaces() override; | 63 | void cleanupSurfaces() override; | ||
▲ Show 20 Lines • Show All 41 Lines • Show Last 20 Lines |