Commit Graph

195 Commits (f780e8b68bfd018cf1ad215dd361e387af386a19)

Author SHA1 Message Date
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