Commit Graph

251 Commits (5f9b75b0c0e973e86f74834e82a3e0e8a4f23021)

Author SHA1 Message Date
Fredrik Höglund 8bba7aed7d Make it possible for the decorations to paint outside the window frame
when compositing is enabled, by letting them add additional padding
to the sides of the frame.

svn path=/trunk/KDE/kdebase/workspace/; revision=963586
2009-05-04 22:35:33 +00:00
Martin Gräßlin d7665af4f0 Texture width and height is stored in GLShader and the uniform value is set during prepareShaderRenderStates in scene_opengl. So the effects do not have to set the uniform manually. This is useful as other effects can still set this uniform if something different is rendered with a different texture width/height (e.g. shadows or thumbnails). When the window is finally rendered the original value set by the effect is definatelly used.
First effect to use this new way to set texture width and height is invert effect.

svn path=/trunk/KDE/kdebase/workspace/; revision=959835
2009-04-27 11:07:15 +00:00
Martin Gräßlin dabc9f0353 OpenGL part of ARGB decorations. See revision 957680 for more information.
svn path=/trunk/KDE/kdebase/workspace/; revision=957681
2009-04-22 17:30:49 +00:00
Luboš Luňák 7249ca2cfb Do self-check immediatelly during compositing setup only when it's not KWin startup
at the same time (in other words, only when activating compositing using the kcm).
Currently selfcheck causes bad flicker (due to X mapping the overlay window
for too long?) which looks bad during KDE startup. With this patch, KDE startup
is without any flicker.


svn path=/trunk/KDE/kdebase/workspace/; revision=923842
2009-02-09 14:51:11 +00:00
Luboš Luňák 6fef8fe8bd Use 3x2 sized pixmap for the self-check rather than 5x1, to also
check for Y inversion (bnc#450801, although I have no idea what
the real problem there is).


svn path=/trunk/KDE/kdebase/workspace/; revision=904309
2009-01-01 21:17:27 +00:00
Lucas Murray 6d41a1320e Moved all debug, warning and error messages into the KWin 1212 area.
Replaced deprecated kdDebug() with kDebug().
Removed empty debug messages.

svn path=/trunk/KDE/kdebase/workspace/; revision=885620
2008-11-17 15:04:52 +00:00
Luboš Luňák 83ddb8f249 Make sure the GLX context is destroyed before the window it's been
made current with. Even though it should be allowed to do it afterwards
it seems this can crash AIGLX.
http://lists.freedesktop.org/archives/xorg/2008-November/040168.html
BUG: 174782


svn path=/trunk/KDE/kdebase/workspace/; revision=882880
2008-11-11 15:06:45 +00:00
Lucas Murray 8f3433bac3 HACK: Temporarily disable opaque-/translucent-only painting until the cause of the glitching is found. Due to a logic error this code has never actually been executed.
CCMAIL: kwin@kde.org

svn path=/trunk/KDE/kdebase/workspace/; revision=867857
2008-10-04 17:36:26 +00:00
Lucas Murray 24816cb67b Fixed "fixed" logic. There's really no other way to do this that's readable so if the "suspicious code" checker still picks this up just ignore it.
BUG: 171709

svn path=/trunk/KDE/kdebase/workspace/; revision=865220
2008-09-27 06:23:33 +00:00
Luboš Luňák b9bf9831b0 Fix wrong logic.
svn path=/trunk/KDE/kdebase/workspace/; revision=864621
2008-09-25 09:13:00 +00:00
Luboš Luňák 6796c1225f Self-check also for XRender.
svn path=/trunk/KDE/kdebase/workspace/; revision=862312
2008-09-18 15:27:13 +00:00
Luboš Luňák 08571b2f52 Do not use 'assert( false )', with NDEBUG that is a no-op and
results in warnings about missing return.


svn path=/trunk/KDE/kdebase/workspace/; revision=861879
2008-09-17 11:44:51 +00:00
Luboš Luňák 23724e35b2 Add an advanced option to override kwin's compositing checks
(i.e. currently it allows to enable compositing even if self-check fails).
Not recommended of course, and it's be still nice to get self-check work
reliably.
CCBUG: 170085


svn path=/trunk/KDE/kdebase/workspace/; revision=860196
2008-09-12 10:26:19 +00:00
Luboš Luňák 8eedfa3456 Another attempt at self-check, this time done directly during setup
(so that it can fail immediately).


svn path=/trunk/KDE/kdebase/workspace/; revision=859960
2008-09-11 16:37:26 +00:00
Luboš Luňák 6fd9d4e4b3 Create a new window for each tested pixmap with selfcheck, otherwise
second test fails for some reason with BadAlloc in glXCreatePixmap().
Maybe nvidia bug, but could be also some hidden KWin bug (according
to GLX docs, glXCreatePixmap() can give BadAlloc only when it can't
allocate, which is nonsense here, but glXCreateWindow() says that
BadAlloc may mean calling it twice on the same window, so maybe
here it's twice with the same pixmap - I don't see where the bug
could be though).


svn path=/trunk/KDE/kdebase/workspace/; revision=857141
2008-09-04 19:48:52 +00:00
Luboš Luňák 9a0124fc96 Check every screen, topleft and bottomright corners, should catch more problems.
Also remove the unnecessary XSync().


svn path=/trunk/KDE/kdebase/workspace/; revision=854556
2008-08-29 19:23:16 +00:00
Luboš Luňák fd2e9b54cb Funny how awesome ideas are often so awfully simple. Test whether compositing
really works by simply trying to do it and test the result - create a small
testing window with known content, do the same with it like with normal
windows, grab the screen contents, compare with the original, doesn't match? -> fail.
It still would be nice to have something similar for performance.


svn path=/trunk/KDE/kdebase/workspace/; revision=854549
2008-08-29 19:02:36 +00:00
Luboš Luňák a42ccaa4ba Virtuals don't work normally in dtors, call in overriden dtor too.
svn path=/trunk/KDE/kdebase/workspace/; revision=853290
2008-08-27 13:21:20 +00:00
Lucas Murray 9a52d3c709 Added feature to only invert the colours of selected windows
Fixed shader alpha blending
CCMAIL: kwin@kde.org

svn path=/trunk/KDE/kdebase/workspace/; revision=853224
2008-08-27 12:20:34 +00:00
Martin Gräßlin cb4ed769aa Change from orthographic projection to a perspective projection. This allows to change z-values and rotations.
Therefore zScale, zTranslate and new RotationData are added to ScreenPaintData and WindowPaintData. So it is possible to define zTranslation and rotations without using OpenGL directly. The change only affects OpenGL compositing. XRender is not changed.

svn path=/trunk/KDE/kdebase/workspace/; revision=842018
2008-08-04 14:07:45 +00:00
Lucas Murray c60c12572e X ARGB windows are stored with alpha premultiplied. Adjusted OpenGL rendering to accomodate that and therefore fixed incorrect rendering of windows with transparencies such as the Plasma panel.
BUG: 163054

svn path=/trunk/KDE/kdebase/workspace/; revision=841974
2008-08-04 11:34:40 +00:00
Luboš Luňák 80dae9910e Fix last commit.
svn path=/trunk/KDE/kdebase/workspace/; revision=807454
2008-05-13 21:27:56 +00:00
Luboš Luňák e5b1dd90bc Restore color settings after painting background. Fixes splashscreen
being fully black during KDE startup, not that I understand why.


svn path=/trunk/KDE/kdebase/workspace/; revision=807447
2008-05-13 21:15:15 +00:00
Luboš Luňák 9bd87cb271 Redo timing of next painting with vsync used, try harder not to miss
every other sync just by a small time.


svn path=/trunk/KDE/kdebase/workspace/; revision=806443
2008-05-11 12:03:42 +00:00
Luboš Luňák 53cc35b649 Show the composite overlay window only before the first painting pass
actually needs to flush the output to the screen. Avoids windows
temporarily disappearing during KDE startup or similar visual glitches.


svn path=/trunk/KDE/kdebase/workspace/; revision=806387
2008-05-11 09:48:34 +00:00
Albert Astals Cid 3b9121ec3f const & in foreach
svn path=/trunk/KDE/kdebase/workspace/; revision=801427
2008-04-26 16:03:02 +00:00
Luboš Luňák 02aeed3de2 No deprecated.
svn path=/trunk/KDE/kdebase/workspace/; revision=788516
2008-03-21 17:50:59 +00:00
Luboš Luňák f77561ce65 Don't discard window texture when only the shape changes but the window
geometry actually stays the same. Avoids large number of rebinds (with no
strict binding) with the launch feedback icon.


svn path=/trunk/KDE/kdebase/workspace/; revision=787948
2008-03-20 10:05:41 +00:00
Luboš Luňák cff2b0e6cd Abstract paint clipping into PaintClipper helper class that allows
stacking of clipping regions.
(http://lists.kde.org/?l=kwin&m=120138051215450&w=2)
BUG: 156798


svn path=/trunk/KDE/kdebase/workspace/; revision=779045
2008-02-25 11:32:21 +00:00
Luboš Luňák 4b792d000e Make error messages about compositing use kError(), so that they show up
even in release builds. Point to release notes in case of error.


svn path=/trunk/KDE/kdebase/workspace/; revision=768132
2008-01-29 14:23:26 +00:00
Luboš Luňák 429f30d508 Skip color-indexed configs, just in case.
svn path=/trunk/KDE/kdebase/workspace/; revision=766482
2008-01-25 23:16:10 +00:00
Luboš Luňák 2382ea23b9 No deprecated.
svn path=/trunk/KDE/kdebase/workspace/; revision=763107
2008-01-18 15:49:57 +00:00
Luboš Luňák 6b5f9f727f Improved error detection in initRenderingContext().
svn path=/trunk/KDE/kdebase/workspace/; revision=763105
2008-01-18 15:49:27 +00:00
Luboš Luňák 4dc04a2eef Move debug output about selected visuals.
svn path=/trunk/KDE/kdebase/workspace/; revision=763097
2008-01-18 15:22:46 +00:00
Luboš Luňák caf1627047 We need NPOT textures.
BUG: 155833


svn path=/trunk/KDE/kdebase/workspace/; revision=762709
2008-01-17 18:21:58 +00:00
Luboš Luňák 110f76ecd8 Change some of the debug messages to warnings, so compositing setup failures
show up also in release builds.


svn path=/trunk/KDE/kdebase/workspace/; revision=762175
2008-01-16 12:44:45 +00:00
Luboš Luňák bb433ac40e No longer include config*.h files in installed headers.
Also slightly redo the #define's for effects, now it's:
- #ifdef KWIN_HAVE_COMPOSITING to check whether there's any compositing support at all
- #ifdef KWIN_HAVE_OPENGL_COMPOSITING to check for OpenGL-based compositing
- #ifdef KWIN_HAVE_XRENDER_COMPOSITING the same for XRender
CCMAIL: kwin@kde.org


svn path=/trunk/KDE/kdebase/workspace/; revision=749628
2007-12-17 14:14:53 +00:00
Luboš Luňák 0a59114c43 I suppose black looks better on places where there's nothing at all.
svn path=/trunk/KDE/kdebase/workspace/; revision=746328
2007-12-08 17:58:24 +00:00
Luboš Luňák 01bf6cbb4c License cleanup - add headers where missing, be explicit about GPL
being v2+ (right now it says just GPL, which according to GPL itself
means any GPL). Decoration clients will come later.
CCMAIL: kwin@kde.org


svn path=/trunk/KDE/kdebase/workspace/; revision=742302
2007-11-27 19:40:25 +00:00
Rivo Laks f4600f4b3f Properly initialize Scene::Window pointers in EffectWindow objects.
svn path=/trunk/KDE/kdebase/workspace/; revision=739644
2007-11-21 13:36:58 +00:00
Luboš Luňák ff2d52e933 Given that Plasma and KRunner now (again, and maybe again not ultimately,
but whatever) default to ARGB visual if available, it's better to turn off
compositing if no GLX visual is found for depth 32.
CCBUG: 152595


svn path=/trunk/KDE/kdebase/workspace/; revision=739261
2007-11-20 19:04:08 +00:00
Luboš Luňák 6c47fc8322 Before destroying a current context, set some other current context (even none).
Fixes crashes with Intel.


svn path=/trunk/KDE/kdebase/workspace/; revision=731410
2007-10-31 16:28:59 +00:00
Luboš Luňák 6daf4d3ec8 Add few missing glBindTexture() calls.
svn path=/trunk/KDE/kdebase/workspace/; revision=726337
2007-10-17 14:54:24 +00:00
Rivo Laks aa0e5c7773 Dynamically load some of the used GLX symbols and make sure they exist before
initing gl mode.

svn path=/trunk/KDE/kdebase/workspace/; revision=721561
2007-10-05 14:10:13 +00:00
Rivo Laks fc2b630b5c Use glXMakeCurrent() instead of glXMakeContextCurrent() (which is only available in glx >= 1.3)
svn path=/trunk/KDE/kdebase/workspace/; revision=720151
2007-10-02 14:57:15 +00:00
Rivo Laks 75e62eefa5 Apply lod bias only to the window texture
svn path=/trunk/KDE/kdebase/workspace/; revision=717334
2007-09-26 16:38:32 +00:00
Luboš Luňák bdaee4e99f mTarget is not set at this point yet, so this gives opengl error.
Is it ok like this or does glTexEnv() require the texture to be bound?
CCMAIL: rivolaks@hot.ee


svn path=/trunk/KDE/kdebase/workspace/; revision=716886
2007-09-25 13:53:36 +00:00
Luboš Luňák 8d69535933 Add opengl debug checks, so that I don't have to add them everytime I need them.
svn path=/trunk/KDE/kdebase/workspace/; revision=716883
2007-09-25 13:42:20 +00:00
Luboš Luňák e6069e9cf6 Arghl. Again a stupid bug caused by float having poor precision.
Reverting r700026 and changing floats to doubles again. I'd probably like
to change even the ones interfacing with OpenGL which I've left for now.


svn path=/trunk/KDE/kdebase/workspace/; revision=707987
2007-09-03 15:00:43 +00:00
Rivo Laks ae4bc5c53d - Call GLTexture ctor
- Adjust texture lod bias after texture's been created (it's not created in init())

svn path=/trunk/KDE/kdebase/workspace/; revision=704983
2007-08-26 19:47:18 +00:00
Rivo Laks a7ab423f93 Use texture lod bias when available to make trilinear-filtered windows look a bit sharper
svn path=/trunk/KDE/kdebase/workspace/; revision=704372
2007-08-24 18:45:08 +00:00
Luboš Luňák d846a1e8a9 Use always float as the floating point type for compositing
(http://lists.kde.org/?l=kwin&m=118493073424327&w=2).


svn path=/trunk/KDE/kdebase/workspace/; revision=700026
2007-08-14 15:22:23 +00:00
Luboš Luňák 5a50381e1f Move the shader used for painting to WindowPaintData, as it's
more related to one painting than to a window.


svn path=/trunk/KDE/kdebase/workspace/; revision=698576
2007-08-10 11:26:58 +00:00
Laurent Montel 994c800d79 Adapt to new KWarning/kFatal/kDebug api
svn path=/trunk/KDE/kdebase/workspace/; revision=695877
2007-08-03 06:59:24 +00:00
Luboš Luňák ac42ba0b4f A simple solution for alpha channel hacks - ignore them :).
The 'ignore ARGB visuals' option from Kompmgr probably doesn't make
much sense, those (usually old) apps can be run with XLIB_SKIP_ARGB_VISUALS=1 set.
Also remove the alpha clear hack used for decorations - I think decorations
instead should be fixed not to "unintentionally" have alpha set.


svn path=/trunk/KDE/kdebase/workspace/; revision=689916
2007-07-19 14:23:11 +00:00
Luboš Luňák 22c8626868 Add a TODO note.
svn path=/trunk/KDE/kdebase/workspace/; revision=689904
2007-07-19 12:53:14 +00:00
Luboš Luňák e1c5f18414 Separate rendering for decoration and window contents, they can have
different opacity (opacity only for decoration option).


svn path=/trunk/KDE/kdebase/workspace/; revision=689855
2007-07-19 10:07:49 +00:00
Luboš Luňák ea944065c7 Arghl, this is not static const, it changes.
svn path=/trunk/KDE/kdebase/workspace/; revision=689136
2007-07-17 18:14:17 +00:00
Luboš Luňák f1108dd13a Let's say the copy buffer hack for old nvidia drivers is not necessary these days.
svn path=/trunk/KDE/kdebase/workspace/; revision=689095
2007-07-17 16:01:07 +00:00
Luboš Luňák 7b054df213 More debug info about possible initialization failures.
svn path=/trunk/KDE/kdebase/workspace/; revision=688960
2007-07-17 10:38:12 +00:00
Stephan Kulow 19d0dab807 init it with something. Even though it looks like it should
rather continue? (CID 3919)

svn path=/trunk/KDE/kdebase/workspace/; revision=688152
2007-07-15 08:13:04 +00:00
Philip Falkner 1fcb1967fe Zack's receent patch to Qt defaulting to ARGB visuals where possible
exposed a bug in our (ab)use of QX11Info::appDepth().  Make sure that
our buffers match the depth of the root window.

Thanks to Fredrik for the hint about DefaultDepth().


svn path=/trunk/KDE/kdebase/workspace/; revision=686998
2007-07-12 16:50:52 +00:00
Luboš Luňák 5faa397849 Vertex redesign - redo the way windows are split into smaller parts
for use in effects (and not only). Now a list of window quads (=window areas)
is created at the beginning of the paint pass, prepaint calls can modify
the split itself (i.e. divide it into more parts). The actual paint calls
can then modify these quads (i.e. transform their geometry). This will allow
better control of how the split is done and also allow painting e.g. only
the decoration differently. Still work in progress, but it works.
Also pass data to prepaint functions in a struct, as there is
already quite a number of them.


svn path=/trunk/KDE/kdebase/workspace/; revision=684893
2007-07-07 14:01:32 +00:00
Philip Falkner c2ff6a4d7a Make sure to unbind the texture in tfp_mode when the underlying pixmap
is discarded.  Windows that have previously been mapped and unmapped now
update properly when mapped again.


svn path=/trunk/KDE/kdebase/workspace/; revision=683977
2007-07-05 19:59:55 +00:00
Luboš Luňák cdb2d046c3 Always rebinding should not make sense anymore.
svn path=/trunk/KDE/kdebase/workspace/; revision=677309
2007-06-18 21:24:01 +00:00
Luboš Luňák 4040e9be58 Add a hack to make it work with XGL.
svn path=/trunk/KDE/kdebase/workspace/; revision=677300
2007-06-18 21:14:18 +00:00
Luboš Luňák d9583cd3f6 Option for strict binding: kwinrc:Translucency:GLStrictBinding .
Non-nvidia users will probably need it set to true with TFP.


svn path=/trunk/KDE/kdebase/workspace/; revision=676673
2007-06-17 12:17:03 +00:00
Luboš Luňák 9c31c4555c I apparently misunderstood the semantics of texture_from_pixmap a bit - rebind
only when the compositing pixmap changes (as in: a new one), not when its contents
change. This finally makes TFP faster than SHM (70% vs 45% of non-composited
performance) and should about match Compiz/Beryl. After this change also strict
binding may finally make sense.


svn path=/trunk/KDE/kdebase/workspace/; revision=676667
2007-06-17 12:02:16 +00:00
Rivo Laks 424f906ab2 - Add optional color argument to renderGLGeometry() functions. If specified, it's used as vertex colors
array when rendering.
- Rearrange some renderGLGeometry() parameters.
- Don't use opengl arrays and glDrawArrays() when rendering a small number of vertices since in this
  case overhead of enabling/disabling the array is too big. Use immediate mode instead in such case.

svn path=/trunk/KDE/kdebase/workspace/; revision=675467
2007-06-14 10:05:51 +00:00
Luboš Luňák acf4e9ce8e Work around gcc-3.3.3's problem with resolving namespaced symbols.
svn path=/trunk/KDE/kdebase/workspace/; revision=673984
2007-06-11 14:35:09 +00:00
Martin Koller 240b663df8 make compile on gcc-3.3.3
svn path=/trunk/KDE/kdebase/workspace/; revision=673195
2007-06-09 10:48:12 +00:00
Luboš Luňák 51107c77b7 We don't use stencil or depth buffer, so best configs are without those.
svn path=/trunk/KDE/kdebase/workspace/; revision=673164
2007-06-09 07:08:30 +00:00
Luboš Luňák f089923fe2 Sets best values found so far only if the config passes all checks, part II.
svn path=/trunk/KDE/kdebase/workspace/; revision=673163
2007-06-09 07:06:11 +00:00
Luboš Luňák dce6be54ca Fix pixmap leak with strict binding.
svn path=/trunk/KDE/kdebase/workspace/; revision=673154
2007-06-09 06:27:22 +00:00
Luboš Luňák de8fa6c883 Clean up also the overlay window on failure.
svn path=/trunk/KDE/kdebase/workspace/; revision=669838
2007-05-30 15:09:06 +00:00
Luboš Luňák 1caa3f95ed Properly check for all needed extensions and handle gracefully absence.
svn path=/trunk/KDE/kdebase/workspace/; revision=669827
2007-05-30 14:22:09 +00:00
Luboš Luňák 94bbce020a Sets best values found so far only if the config passes all checks.
svn path=/trunk/KDE/kdebase/workspace/; revision=669782
2007-05-30 12:01:34 +00:00
Luboš Luňák fdf4645013 Remove unnecessary calls to initDrawableConfigs().
svn path=/trunk/KDE/kdebase/workspace/; revision=669778
2007-05-30 11:44:16 +00:00
Luboš Luňák fe3e66deb3 No ceilf().
BUG: 145776


svn path=/trunk/KDE/kdebase/workspace/; revision=667286
2007-05-22 12:07:19 +00:00
Philip Falkner 630f5793dc Update SHM mode.
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
2007-04-29 21:22:49 +00:00
Luboš Luňák f52b8e48cd branches/work/kwin_composite becomes new trunk kwin.
svn path=/trunk/KDE/kdebase/workspace/; revision=659202
2007-04-29 17:35:43 +00:00
Luboš Luňák 2b7e1f4993 Remove kwin, kwin_composite will become new trunk kwin, missing merges
from trunk will be merged in.


svn path=/trunk/KDE/kdebase/workspace/; revision=659200
2007-04-29 17:34:49 +00:00
Luboš Luňák cd98bc12d5 Shared implementation of rendering gl geometry.
svn path=/branches/work/kwin_composite/; revision=656516
2007-04-21 16:02:19 +00:00
Rivo Laks cc1a7a9eca Add GLRenderTarget class.
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
2007-04-18 15:22:13 +00:00
Rivo Laks 0353f3376e Make effects actual plugins, so it's possible to load them on runtime.
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
2007-04-10 13:02:08 +00:00
Luboš Luňák e3b865cd5f namespace KWinInternal -> KWin - shorter typing of names in gdb, yay
svn path=/branches/work/kwin_composite/; revision=650770
2007-04-05 12:07:35 +00:00
Luboš Luňák 8b5b40e4e8 Shadows. Right not it's only flat black rectangle, but otherwise
everything should work.


svn path=/branches/work/kwin_composite/; revision=646315
2007-03-25 10:48:07 +00:00
Luboš Luňák 81fdcfd20b Beryl has moved to git.
svn path=/branches/work/kwin_composite/; revision=645292
2007-03-22 08:38:30 +00:00
Philip Falkner aa6d8eabc5 Add GLTexture class. This is a convenient wrapper around managing an OpenGL texture, as well as loading an image into it. Includes support for loading from QImage, QPixmap, and a file. Defaults to a GL_TEXTURE_2D target, and will scale image if necessary.
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
2007-03-21 18:14:09 +00:00
Luboš Luňák da02ba11ca Scene*::Window classes are now too complex to be value-based,
allocate them dynamically.


svn path=/branches/work/kwin_composite/; revision=645046
2007-03-21 15:52:42 +00:00
Rivo Laks 19e7ebe1d8 Add shader support.
Effects can use setShader() method to set a custom shader for window rendering.

svn path=/branches/work/kwin_composite/; revision=643131
2007-03-16 13:00:01 +00:00
Luboš Luňák d4a58f4152 QMap -> QHash
svn path=/branches/work/kwin_composite/; revision=642532
2007-03-14 16:50:19 +00:00
Luboš Luňák f6ad1881e1 Support for window thumbnails.
svn path=/branches/work/kwin_composite/; revision=640344
2007-03-07 17:50:33 +00:00
Luboš Luňák e61ecff9b9 Check that getting compositing pixmap of a window succeeded.
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
2007-02-27 16:13:34 +00:00
Philip Falkner 8299541652 Add build checks for XComposite, XDamage, XRender, OpenGL, and XShm.
KWin should now build and run with/without any or all of the above.

svn path=/branches/work/kwin_composite/; revision=633387
2007-02-13 23:28:36 +00:00
Rivo Laks de2c5223ee Split window rendering into multiple methods
svn path=/branches/work/kwin_composite/; revision=630472
2007-02-05 14:01:09 +00:00
Philip Falkner f060c3bfbb Improved filtering algorithm. Now fast filtering is used by default, while (depending on SmoothScale in kwinrc) bilinear filtering is used on transformed windows and screens.
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
2007-02-02 19:58:35 +00:00
Philip Falkner 66d796002f Add basic mipmapping support for OpenGL; by itself this doesn't do much, but allows further capabilities.
svn path=/branches/work/kwin_composite/; revision=629452
2007-02-02 19:56:18 +00:00
Philip Falkner 1e2d811cea Add support for GL_EXT_framebuffer_object, needed for mipmaps.
svn path=/branches/work/kwin_composite/; revision=629450
2007-02-02 19:55:17 +00:00
Philip Falkner 8fe5ec7709 Use glXGetFBConfigs instead of glXChooseFBConfig.
This makes texture_from_pixmap mode work in more places.

svn path=/branches/work/kwin_composite/; revision=628804
2007-01-31 14:32:52 +00:00