Commit graph

108 commits

Author SHA1 Message Date
Martin Gräßlin
0a7e48f7aa KWin uses kdelibs coding style. 2011-01-31 20:07:03 +01:00
Thomas Lübking
337e1eac18 revert vsync strategy, fix timeouts
differecens to patch atteched to 258971:
- removed debug statements
- fixed indention...
- NON vsync strategy does not rely on the estimation, but on the time passed since the last repaint trigger, allowing a precise framerate

CCBUG: 258971


svn path=/trunk/KDE/kdebase/workspace/; revision=1210445
2010-12-31 13:14:11 +00:00
Thomas Lübking
1956f10280 scale the clip rect by the proper scalefactor dimension...
svn path=/trunk/KDE/kdebase/workspace/; revision=1203283
2010-12-03 14:01:05 +00:00
Kevin Ottens
ff61f40d8d Don't rely on the kdgstream typedef which is deprecated. Use QDebug
directly.

svn path=/trunk/KDE/kdebase/workspace/; revision=1190379
2010-10-27 14:16:56 +00:00
Luboš Luňák
d467d26530 Do not introduce such generic indentifiers like None or Styled
into KWin's global namespace. Morever None already kind of clashes with X's None.
CCMAIL: kde@martin-graesslin.com


svn path=/trunk/KDE/kdebase/workspace/; revision=1170588
2010-09-01 14:15:06 +00:00
Martin Gräßlin
eabad32cfb Add cross fade support for text and icon to EffectFrame.
This allows an effect to fade between old and new text/icon. As an example it's added to CoverSwitch.
Currently only supported in OpenGL. XRender might be added, but I'm missing an idea for an effect to add it.
Most effects using EffectFrame require OpenGL anyway.

svn path=/trunk/KDE/kdebase/workspace/; revision=1160252
2010-08-07 14:08:34 +00:00
Martin Gräßlin
ef79d4c443 Use the normal Plasma selection to highlight the selected window in boxswitch.
So it is more consistent (in KDE newspeak "elegant") with other selections and as a plus we get rid of all the custom rendering code in boxswitch.

svn path=/trunk/KDE/kdebase/workspace/; revision=1155051
2010-07-26 20:00:04 +00:00
Martin Gräßlin
fa832b7aa7 Cache the icon texture/picture in EffectFrame and use texture from pixmap to load the data in OpenGL mode. Yeah for less pixmap to image to gltexture conversations.
Some effects (boxswitch and flipswitch) still need to be changed to not set the icon in each frame.

svn path=/trunk/KDE/kdebase/workspace/; revision=1152367
2010-07-20 21:11:03 +00:00
Martin Gräßlin
e2eebb6503 Refactoring of EffectFrame: EffectFrame becomes an interface just like EffectsHandler and EffectWindow and a concrete EffectFrameImpl in core.
Rendering of the EffectFrame is moved into the scene as Scene::EffectFrame with a concrete implementation in SceneXrender and SceneOpenGL.
A factory method for an EffectFrame is added to the EffectsHandler, which is used by the effects.
Next step: pass the EffectFrame through all effects, so that effects can transform, blur, invert whatever it.

svn path=/trunk/KDE/kdebase/workspace/; revision=1151271
2010-07-18 16:32:37 +00:00
Lucas Murray
8960c552d2 Remove OpenGL driver whitelist; Add protection against crashy glXQuery
functions and share the value with the KCM; Fallback to XRender
compositing if OpenGL fails to work correctly; Rearrange setting order
in options.h slightly and fix variable names

svn path=/trunk/KDE/kdebase/workspace/; revision=1079919
2010-01-25 10:02:08 +00:00
Fredrik Höglund
85d965a78e Fix a performance problem with the radeon driver and effects that use
tranformations when in Xrender mode.

svn path=/trunk/KDE/kdebase/workspace/; revision=1063025
2009-12-16 18:51:36 +00:00
Fredrik Höglund
0b992748be Switch the order, so the decoration is drawn before the client window.
svn path=/trunk/KDE/kdebase/workspace/; revision=1054380
2009-11-25 23:08:19 +00:00
Robin Harold Burchell
f585e4e1d9 A number of small warning fixes (bracketing, etc) to help pick up real problems when working.
svn path=/trunk/KDE/kdebase/workspace/; revision=1022531
2009-09-11 23:44:29 +00:00
Martin Gräßlin
ba27d2ebb0 Copy decoration pixmaps to Deleted. By that we see the decoration also when having a fade out animation.
As this is a bigger commit I will wait with backporting to 4.3 for something about two or three weeks and will only backport if nobody yells.
BUG: 201780

svn path=/trunk/KDE/kdebase/workspace/; revision=1004096
2009-07-29 11:07:28 +00:00
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
Fredrik Höglund
e92aab0518 Implement initial support for ARGB window decorations.
Based on earlier work done by Lubos Lunak and ideas by Lucas Murray.

svn path=/trunk/KDE/kdebase/workspace/; revision=957680
2009-04-22 17:29:56 +00:00
Luboš Luňák
11290257b2 Fix small leak.
svn path=/trunk/KDE/kdebase/workspace/; revision=925150
2009-02-12 15:25:47 +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
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
3eaaa4c23b Clean up properly if selfcheck fails.
svn path=/trunk/KDE/kdebase/workspace/; revision=862318
2008-09-18 15:37:46 +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
14ae8d2dc9 Support for unredirecting fullscreen windows, i.e. games etc. can paint directly
and not be slowed down by going through compositing. Turned on and no UI option
in the naive hope that it won't cause any real problems. Maybe effects doing
window previews should get API to suspend unredirect though.


svn path=/trunk/KDE/kdebase/workspace/; revision=851742
2008-08-24 13:32:57 +00:00
Tobias Koenig
69d45962cb Reset 'buffer' to None after freeing it.
That fixes the bug that XRender compositing can't be initialized
correctly on KDE startup.

svn path=/trunk/KDE/kdebase/workspace/; revision=821854
2008-06-18 16:41:26 +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
Luboš Luňák
022d2066c6 Implement fake brightness by overlaying black over the window.
Makes Logout or DimInactive effects work in XRender mode too.


svn path=/trunk/KDE/kdebase/workspace/; revision=805577
2008-05-08 19:08:05 +00:00
Luboš Luňák
7f669912bb Fix initialization with non-truecolor depths.
svn path=/trunk/KDE/kdebase/workspace/; revision=805344
2008-05-08 09:22:24 +00:00
Luboš Luňák
33fc8c024f Better clipping.
svn path=/trunk/KDE/kdebase/workspace/; revision=805326
2008-05-08 08:28:26 +00:00
Luboš Luňák
e3040b1938 Clip with shaped windows.
BUG: 160141  


svn path=/trunk/KDE/kdebase/workspace/; revision=805221
2008-05-07 21:35:36 +00:00
Luboš Luňák
5efac21537 XRenderPicture, a wrapper around XRender's Picture, which
should act just like Picture, except for proper initialization
and resource freeing (i.e. it's sane and easy from C++ point of view).


svn path=/trunk/KDE/kdebase/workspace/; revision=805085
2008-05-07 14:43:13 +00:00
Luboš Luňák
6142ecbfe0 paintTransformedScreen() is broken, disable its usage.
svn path=/trunk/KDE/kdebase/workspace/; revision=805050
2008-05-07 12:54:23 +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
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
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
Rivo Laks
be3271c8e0 Fix problem with partial repaints when effect's prePaintWindow() expands paint region.
Also rework the code a bit to simplify it and make it more comprehensible (IMHO).

svn path=/trunk/KDE/kdebase/workspace/; revision=746050
2007-12-07 17:03:59 +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
Luboš Luňák
aba180b466 kdebug no longer relies on NDEBUG
svn path=/trunk/KDE/kdebase/workspace/; revision=741888
2007-11-26 17:17:45 +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
Rivo Laks
840818e39a Add separate option for smooth scaling in XRender mode.
It's slow (software scaling), so it's disabled by default.

svn path=/trunk/KDE/kdebase/workspace/; revision=715200
2007-09-21 13:27:56 +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
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
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
56eeb84acc More checks that quads are split only in pre-paint and transformed
only in paint.


svn path=/trunk/KDE/kdebase/workspace/; revision=689945
2007-07-19 16:11:27 +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