Changeset View
Changeset View
Standalone View
Standalone View
plugins/scenes/opengl/scene_opengl.h
Show All 36 Lines | |||||
37 | class SyncManager; | 37 | class SyncManager; | ||
38 | class SyncObject; | 38 | class SyncObject; | ||
39 | 39 | | |||
40 | class KWIN_EXPORT SceneOpenGL | 40 | class KWIN_EXPORT SceneOpenGL | ||
41 | : public Scene | 41 | : public Scene | ||
42 | { | 42 | { | ||
43 | Q_OBJECT | 43 | Q_OBJECT | ||
44 | public: | 44 | public: | ||
45 | class EffectFrame; | | |||
46 | class Window; | 45 | class Window; | ||
47 | ~SceneOpenGL() override; | 46 | ~SceneOpenGL() override; | ||
48 | bool initFailed() const override; | 47 | bool initFailed() const override; | ||
49 | bool hasPendingFlush() const override; | 48 | bool hasPendingFlush() const override; | ||
50 | qint64 paint(QRegion damage, QList<Toplevel *> windows) override; | 49 | qint64 paint(QRegion damage, QList<Toplevel *> windows) override; | ||
51 | Scene::EffectFrame *createEffectFrame(EffectFrameImpl *frame) override; | | |||
52 | Shadow *createShadow(Toplevel *toplevel) override; | 50 | Shadow *createShadow(Toplevel *toplevel) override; | ||
53 | void screenGeometryChanged(const QSize &size) override; | 51 | void screenGeometryChanged(const QSize &size) override; | ||
54 | OverlayWindow *overlayWindow() const override; | 52 | OverlayWindow *overlayWindow() const override; | ||
55 | bool usesOverlayWindow() const override; | 53 | bool usesOverlayWindow() const override; | ||
56 | bool hasSwapEvent() const override; | 54 | bool hasSwapEvent() const override; | ||
57 | bool makeOpenGLContextCurrent() override; | 55 | bool makeOpenGLContextCurrent() override; | ||
58 | void doneOpenGLContextCurrent() override; | 56 | void doneOpenGLContextCurrent() override; | ||
59 | Decoration::Renderer *createDecorationRenderer(Decoration::DecoratedClientImpl *impl) override; | 57 | Decoration::Renderer *createDecorationRenderer(Decoration::DecoratedClientImpl *impl) override; | ||
▲ Show 20 Lines • Show All 164 Lines • ▼ Show 20 Line(s) | |||||
224 | protected: | 222 | protected: | ||
225 | WindowPixmap *createChild(const QPointer<KWayland::Server::SubSurfaceInterface> &subSurface) override; | 223 | WindowPixmap *createChild(const QPointer<KWayland::Server::SubSurfaceInterface> &subSurface) override; | ||
226 | private: | 224 | private: | ||
227 | explicit OpenGLWindowPixmap(const QPointer<KWayland::Server::SubSurfaceInterface> &subSurface, WindowPixmap *parent, SceneOpenGL *scene); | 225 | explicit OpenGLWindowPixmap(const QPointer<KWayland::Server::SubSurfaceInterface> &subSurface, WindowPixmap *parent, SceneOpenGL *scene); | ||
228 | QScopedPointer<SceneOpenGLTexture> m_texture; | 226 | QScopedPointer<SceneOpenGLTexture> m_texture; | ||
229 | SceneOpenGL *m_scene; | 227 | SceneOpenGL *m_scene; | ||
230 | }; | 228 | }; | ||
231 | 229 | | |||
232 | class SceneOpenGL::EffectFrame | | |||
233 | : public Scene::EffectFrame | | |||
234 | { | | |||
235 | public: | | |||
236 | EffectFrame(EffectFrameImpl* frame, SceneOpenGL *scene); | | |||
237 | ~EffectFrame() override; | | |||
238 | | ||||
239 | void free() override; | | |||
240 | void freeIconFrame() override; | | |||
241 | void freeTextFrame() override; | | |||
242 | void freeSelection() override; | | |||
243 | | ||||
244 | void render(QRegion region, double opacity, double frameOpacity) override; | | |||
245 | | ||||
246 | void crossFadeIcon() override; | | |||
247 | void crossFadeText() override; | | |||
248 | | ||||
249 | static void cleanup(); | | |||
250 | | ||||
251 | private: | | |||
252 | void updateTexture(); | | |||
253 | void updateTextTexture(); | | |||
254 | | ||||
255 | GLTexture *m_texture; | | |||
256 | GLTexture *m_textTexture; | | |||
257 | GLTexture *m_oldTextTexture; | | |||
258 | QPixmap *m_textPixmap; // need to keep the pixmap around to workaround some driver problems | | |||
259 | GLTexture *m_iconTexture; | | |||
260 | GLTexture *m_oldIconTexture; | | |||
261 | GLTexture *m_selectionTexture; | | |||
262 | GLVertexBuffer *m_unstyledVBO; | | |||
263 | SceneOpenGL *m_scene; | | |||
264 | | ||||
265 | static GLTexture* m_unstyledTexture; | | |||
266 | static QPixmap* m_unstyledPixmap; // need to keep the pixmap around to workaround some driver problems | | |||
267 | static void updateUnstyledTexture(); // Update OpenGL unstyled frame texture | | |||
268 | }; | | |||
269 | | ||||
270 | /** | 230 | /** | ||
271 | * @short OpenGL implementation of Shadow. | 231 | * @short OpenGL implementation of Shadow. | ||
272 | * | 232 | * | ||
273 | * This class extends Shadow by the Elements required for OpenGL rendering. | 233 | * This class extends Shadow by the Elements required for OpenGL rendering. | ||
274 | * @author Martin Gräßlin <mgraesslin@kde.org> | 234 | * @author Martin Gräßlin <mgraesslin@kde.org> | ||
275 | */ | 235 | */ | ||
276 | class SceneOpenGLShadow | 236 | class SceneOpenGLShadow | ||
277 | : public Shadow | 237 | : public Shadow | ||
▲ Show 20 Lines • Show All 75 Lines • Show Last 20 Lines |