Commit graph

90 commits

Author SHA1 Message Date
Luboš Luňák
4607cab829 Config option for whether zooming should be smooth or fast.
svn path=/branches/work/kwin_composite/; revision=610138
2006-12-03 13:38:57 +00:00
Luboš Luňák
6bf5d12108 Zoom effect, i.e. magnifying glass. The zoom is hardcoded
for now.


svn path=/branches/work/kwin_composite/; revision=610134
2006-12-03 13:36:40 +00:00
Luboš Luňák
6a66250620 Better synchronization of refresh rate and vsyncing,
patch by Philip Falkner.


svn path=/branches/work/kwin_composite/; revision=610110
2006-12-03 13:29:14 +00:00
Luboš Luňák
2fa320c9b8 Clearing of the whole buffer is not necessary anymore, at least not
in the simple cases. Improves drawing performance.


svn path=/branches/work/kwin_composite/; revision=608458
2006-11-27 16:16:34 +00:00
Luboš Luňák
277449f545 Ungrab X before doing the double-buffering swap, as that one
may involve waiting to sync to vblank.


svn path=/branches/work/kwin_composite/; revision=607501
2006-11-24 21:28:52 +00:00
Luboš Luňák
049460fa2e Reset window damage after updating the damaged areas of the OpenGL texture
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
2006-11-24 21:28:00 +00:00
Luboš Luňák
8bbf28ed9c It seems the fallback mode doesn't work with direct rendering.
svn path=/branches/work/kwin_composite/; revision=607241
2006-11-23 20:21:27 +00:00
Luboš Luňák
2c9dd370d9 Do not try to paint outside of the screen.
svn path=/branches/work/kwin_composite/; revision=606822
2006-11-21 22:22:48 +00:00
Luboš Luňák
9c4218d4bf Sync to vblank, patch by Philip Falkner.
svn path=/branches/work/kwin_composite/; revision=606795
2006-11-21 20:59:59 +00:00
Luboš Luňák
55015eb927 Actually detect if the rendering is really direct.
svn path=/branches/work/kwin_composite/; revision=606789
2006-11-21 20:11:40 +00:00
Luboš Luňák
3e534d7d75 Convert to OpenGL coordinates.
svn path=/branches/work/kwin_composite/; revision=606378
2006-11-20 08:39:48 +00:00
Luboš Luňák
930a9248c9 Repainting of only changed areas, now also for OpenGL.
svn path=/branches/work/kwin_composite/; revision=606272
2006-11-19 20:29:41 +00:00
Luboš Luňák
b956650b2d Make some aspects affecting performance configurable in kwinrc,
group [Translucency]:
GLMode=TFP|SHM|Fallback - select rendering mode
GLAlwaysRebind=<bool> - force rebinding a texture
GLDirect=<bool> - direct rendering
CCMAIL: kwin@kde.org


svn path=/branches/work/kwin_composite/; revision=606268
2006-11-19 20:13:49 +00:00
Luboš Luňák
6e54bae328 Try to reduce number of roundtrips in SHM mode by merging
region rectangles.


svn path=/branches/work/kwin_composite/; revision=606267
2006-11-19 20:10:25 +00:00
Luboš Luňák
8100c40188 Remove unused code.
svn path=/branches/work/kwin_composite/; revision=606261
2006-11-19 20:02:25 +00:00
Luboš Luňák
186fded142 Use glPush/PopAttrib() instead of glIs*().
svn path=/branches/work/kwin_composite/; revision=605476
2006-11-16 21:40:10 +00:00
Luboš Luňák
8e257f251f Use kwin debug area.
svn path=/branches/work/kwin_composite/; revision=605290
2006-11-16 09:05:40 +00:00
Luboš Luňák
a35cf8e954 Try to use direct rendering.
svn path=/branches/work/kwin_composite/; revision=605288
2006-11-16 09:02:03 +00:00
Luboš Luňák
9d25cf5166 SHM mode, using MIT-SHM extension for Pixmap->image data conversions
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
2006-11-16 08:36:30 +00:00
Luboš Luňák
f33683df3f A different workaround for ATI (http://lists.kde.org/?l=kwin&m=116353772208535&w=2).
svn path=/branches/work/kwin_composite/; revision=605278
2006-11-16 07:57:55 +00:00
Luboš Luňák
9bfae71d45 Support for strict binding for AIGLX, although currently not needed.
svn path=/branches/work/kwin_composite/; revision=605274
2006-11-16 07:46:39 +00:00
Luboš Luňák
0bd186ec72 Support GLX 1.2 (no glXCreateWindow() functionality).
svn path=/branches/work/kwin_composite/; revision=604877
2006-11-14 13:18:53 +00:00
Luboš Luňák
1be2c4ed32 Detect and check GLX version/extensions.
svn path=/branches/work/kwin_composite/; revision=604805
2006-11-14 11:52:20 +00:00
Luboš Luňák
9a706bea89 Remove one more part of direct OpenGL drawing to the root window.
svn path=/branches/work/kwin_composite/; revision=604021
2006-11-11 09:14:38 +00:00
Luboš Luňák
340e64ab51 With the overlay fix double-buffering now works too.
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
2006-11-11 09:11:51 +00:00
Luboš Luňák
60d343f1d7 A great idea from Cedric Borgese: Instead of transforming
the OpenGL scene to match X coordinate system, adjust it
directly using glOrtho().


svn path=/branches/work/kwin_composite/; revision=603929
2006-11-10 20:27:44 +00:00
Luboš Luňák
001ddfacbd Remove requiring GLX_DRAWABLE_TYPE to include GLX_PIXMAP_BIT,
ATI seems to be buggy and it doesn't seem to be really necessary.


svn path=/branches/work/kwin_composite/; revision=603922
2006-11-10 20:01:24 +00:00
Luboš Luňák
bcfc36c695 Work around ATI crashes.
svn path=/branches/work/kwin_composite/; revision=603713
2006-11-09 20:48:12 +00:00
Luboš Luňák
1cc603cf75 Abort if there are problems with setting up OpenGL context.
svn path=/branches/work/kwin_composite/; revision=603712
2006-11-09 20:38:14 +00:00
Luboš Luňák
aeafa63a94 Move some OpenGL code to glutils.* .
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
2006-11-08 19:10:07 +00:00
Luboš Luňák
d3fc0bbc09 Add support for changing saturation. Patch by Rivo Laks.
svn path=/branches/work/kwin_composite/; revision=603145
2006-11-07 23:33:23 +00:00
Luboš Luňák
368c97ac96 Debug about visuals used.
svn path=/branches/work/kwin_composite/; revision=603143
2006-11-07 23:21:08 +00:00
Luboš Luňák
8d777cb1f7 Double-buffering using OpenGL doesn't work and I have no idea why.
svn path=/branches/work/kwin_composite/; revision=603138
2006-11-07 22:45:56 +00:00
Luboš Luňák
4110fc1c3a Support for XComposite overlay window.
svn path=/branches/work/kwin_composite/; revision=603137
2006-11-07 22:44:39 +00:00
Luboš Luňák
f631e57a01 Bind the texture also in the global context and some opengl<->x
synchronizing.


svn path=/branches/work/kwin_composite/; revision=603127
2006-11-07 22:11:53 +00:00
Luboš Luňák
5245ef9e10 In non-tfp mode, a different context must be used when doing opengl
operations with the window drawable. Patch by Philip Falkner.


svn path=/branches/work/kwin_composite/; revision=603122
2006-11-07 22:04:57 +00:00
Luboš Luňák
2150cae758 svn revert r603055, it's nonsense
svn path=/branches/work/kwin_composite/; revision=603098
2006-11-07 20:33:52 +00:00
Luboš Luňák
e99a883a81 Require configs with no caveats. Manual replacement for glXChooseFBConfig()
is really needed :-/.


svn path=/branches/work/kwin_composite/; revision=603064
2006-11-07 17:51:15 +00:00
Luboš Luňák
f63e9e2b5b Fix last commit.
svn path=/branches/work/kwin_composite/; revision=603058
2006-11-07 17:33:53 +00:00
Luboš Luňák
6e3f0f7bbe Blah, destination drawable doesn't need alpha channel.
svn path=/branches/work/kwin_composite/; revision=603056
2006-11-07 17:31:34 +00:00
Luboš Luňák
5b7ef47746 Check root visual also when trying to find non-db config.
svn path=/branches/work/kwin_composite/; revision=603055
2006-11-07 17:27:58 +00:00
Luboš Luňák
2cd4ab9034 Fix Beryl SVN URL.
svn path=/branches/work/kwin_composite/; revision=601726
2006-11-04 08:11:01 +00:00
Luboš Luňák
8188d48bea Include urls for the opengl docs.
svn path=/branches/work/kwin_composite/; revision=601302
2006-11-02 20:21:34 +00:00
Luboš Luňák
245df12129 But that doesn't compile here. According to http://www.opengl.org/registry/ABI/
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
2006-11-02 12:57:10 +00:00
Tim Beaulen
4e34c8f0b3 Build
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
2006-11-02 12:06:47 +00:00
Luboš Luňák
12731982bb Does compositing/opengl work with gfx cards other than nvidia?
svn path=/branches/work/kwin_composite/; revision=600732
2006-10-31 15:28:38 +00:00
Luboš Luňák
bf0256bf1b Fix compile.
svn path=/branches/work/kwin_composite/; revision=600688
2006-10-31 13:20:51 +00:00
Luboš Luňák
d92d3a8165 Document the compositing framework and the scene backends,
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
2006-10-29 19:23:45 +00:00
Luboš Luňák
3f9b754ee7 Add post-painting pass to be used for triggering
repaints with animations.


svn path=/branches/work/kwin_composite/; revision=600156
2006-10-29 19:07:10 +00:00
Luboš Luňák
05021ecedb Fix crash with unmanaged windows.
svn path=/branches/work/kwin_composite/; revision=598783
2006-10-24 15:54:52 +00:00