For 16bpp pixmaps, we use GL_RGB and GL_UNSIGNED_SHORT_5_6_5 with
glTex(Sub)Image2D, which means that SHM mode works with 16bpp X
servers.
Also, only create one XShmPixmap per damaged pixmap, instead of one
per (optimised) damage rectangle. Now we can use GL_RGB textures for
24bpp pixmaps, just like fallback mode does and tfp mode can.
svn path=/trunk/KDE/kdebase/workspace/; revision=659274
The render target is used to render the scene (or part of it) onto texture. This texture can then be used
e.g. to do some postprocessing.
Demo effect coming soon.
Move checkGLError() to kwineffects.*
Add GLTexture ctor which takes width and height and creates an empty texture (to be used with
GLRenderTarget to render onto it)
svn path=/branches/work/kwin_composite/; revision=655489
There's also a kwineffects library now, containing the effects API, which makes it possible to write
third-party effects.
API isn't complete yet and for now just two effects have been converted but I'm working on it :-)
svn path=/branches/work/kwin_composite/; revision=652226
Also add SceneOpenGL::Texture class, based on GLTexture. Optimised for SceneOpenGL::Window, this adds support for loading from an X Pixmap, as well as taking advantage of texture_from_pixmap/shm when available. Automatically detects what texture target should be used, so be sure to enableUnnormalizedTexCoords() before painting.
Make SceneOpenGL::Window, BoxSwitchEffect, and ExplosionEffect use the new classes.
svn path=/branches/work/kwin_composite/; revision=645125
It may fail (or "fail") if the window is not mapped or if the geometry
doesn't match, both of which may happen due to the asynchronous
nature of X.
svn path=/branches/work/kwin_composite/; revision=637741
Optionally, if SmoothScale is set to 2, trilinear filtering will be attempted instead of bilinear. This requires GL_ARB_texture_non_power_of_two, GL_EXT_framebuffer_object, and valid mipmaps.
svn path=/branches/work/kwin_composite/; revision=629453
than using glRasterPos2f() - the latter causes drawing
artefacts at the bottom screen edge with some gfx cards
svn path=/branches/work/kwin_composite/; revision=627525
Effects also get access to window's vertices. This can be used to change shape of
the window, e.g. for wobble effect
svn path=/branches/work/kwin_composite/; revision=626706
instances and keeping them around after the window is closed, create
class Deleted as a representation of a closed window.
svn path=/branches/work/kwin_composite/; revision=626356
or Xrender picture, not after every repaint.
This also allows removing the confusing initPaint()/postPaint() calls in Scene.
svn path=/branches/work/kwin_composite/; revision=607500
and glTexImage texture creation. Stolen from Beryl (stolen from Looking Glass).
Not faster than TFP but faster then the original fallback glCopyTexImage
mode from glcompmgr.
svn path=/branches/work/kwin_composite/; revision=605283
Also dump drawing directly into the root window, OpenGL normally
clips the root window, so nothing is drawn. NVidia has "DisableGLXRootClipping",
but there's no way to detect that and there's still the non-db mode.
svn path=/branches/work/kwin_composite/; revision=604019
Add support for changing window brightness.
Add DialogParent effect that makes windows that are unaccessible because
of modal dialogs darker.
Patch by Rivo Laks.
svn path=/branches/work/kwin_composite/; revision=603384
the right header for GLX extensions is GL/glxext.h . If it still doesn't
compile somewhere, it probably needs conditional compilation.
svn path=/branches/work/kwin_composite/; revision=601182
The errors I got:
[ 28%] Building CXX object workspace/kwin/CMakeFiles/kdeinit_kwin.dir/scene_opengl.o
/home/kde4dev/kde/src/kdebase/workspace/kwin/scene_opengl.cpp:162: error: 'GLX_BIND_TO_TEXTURE_RGBA_EXT' was not declared in this scope
/home/kde4dev/kde/src/kdebase/workspace/kwin/scene_opengl.cpp: In member function 'void KWinInternal::SceneOpenGL::Window::bindTexture()':
/home/kde4dev/kde/src/kdebase/workspace/kwin/scene_opengl.cpp:500: error: 'GLX_FRONT_LEFT_EXT' was not declared in this scope
/home/kde4dev/kde/src/kdebase/workspace/kwin/scene_opengl.cpp:506: error: 'GLX_TEXTURE_FORMAT_EXT' was not declared in this scope
/home/kde4dev/kde/src/kdebase/workspace/kwin/scene_opengl.cpp:506: error: 'GLX_TEXTURE_FORMAT_RGBA_EXT' was not declared in this scope
/home/kde4dev/kde/src/kdebase/workspace/kwin/scene_opengl.cpp:512: error: 'GLX_Y_INVERTED_EXT' was not declared in this scope
/home/kde4dev/kde/src/kdebase/workspace/kwin/scene_opengl.cpp:515: error: 'GLX_FRONT_LEFT_EXT' was not declared in this scope
/home/kde4dev/kde/src/kdebase/workspace/kwin/scene_opengl.cpp: In member function 'void KWinInternal::SceneOpenGL::Window::discardTexture()':
/home/kde4dev/kde/src/kdebase/workspace/kwin/scene_opengl.cpp:568: error: 'GLX_FRONT_LEFT_EXT' was not declared in this scope
make[2]: *** [workspace/kwin/CMakeFiles/kdeinit_kwin.dir/scene_opengl.o] Error 1
make[1]: *** [workspace/kwin/CMakeFiles/kdeinit_kwin.dir/all] Error 2
make: *** [all] Error 2
kde4dev@localhost ~/kde/src/k
svn path=/branches/work/kwin_composite/; revision=601177
describe the design, add links to external docs.
Restructure COMPOSITE_TODO into sections and add sort of priorities.
svn path=/branches/work/kwin_composite/; revision=600163
even with stable 8776 nvidia drivers (the beta ones lock up on me
from time to time with multiple X running).
svn path=/branches/work/kwin_composite/; revision=597767
down ( [0,0] is bottomleft, unlike topleft with X ), so simply
flip the whole scene upside down and move it up -> the coordinates
match, except for when mapping pixmap to textures.
svn path=/branches/work/kwin_composite/; revision=594942