Revision 33e36b8...
Go back to digest for 2nd September 2012Optimization in KDE Base
Split out the windowing system related part of SceneOpenGL
The handling for creating and managing the OpenGL context is
split out of the SceneOpenGL into the abstract OpenGLBackend
and it's two subclasses GlxBackend and EglOnXBackend.
The backends take care of creating the OpenGL context on the
windowing system, e.g. on glx an OpenGL context on the overlay
window is created and in the egl case an EGL context is created.
This means that the SceneOpenGL itself does not have to care
about the specific underlying infrastructure.
Furthermore the backend provides the Textures for the specific
texture from pixmap operations. For that in each of the backend
files an additional subclass of the TexturePrivate is defined.
These subclasses hold the EglImage and GLXPixmap respectively.
The backend is able to create such a private texture and for
that the ctor of the Texture is changed to take the backend as
a parameter and the Scene provides a factory method for
creating Textures. To make this work inside Window the Textures
are now hold as pointers which seems a better choice anyway as
to the member functions pointers are passed.
File Changes
- kwin/eglonxbackend.h
- kwin/glxbackend.h
- kwin/CMakeLists.txt
- kwin/effects.cpp
- kwin/scene.cpp
- kwin/scene.h
- kwin/scene_opengl.cpp
- kwin/scene_opengl.h
- kwin/scene_xrender.cpp
- kwin/scene_xrender.h