Commit graph

216 commits

Author SHA1 Message Date
Martin Gräßlin
234ec644d2 KWin supports graphicssystem Raster
With raster a QPixmap is no longer a XPixmap which fails all code
which assumes that an QPixmap is an XPixmap. Depending on were in
the codebase we either convert such pixmaps to images (OpenGL) or
create a XPixmap and use QPixmap::fromX11Pixmap to get a "real"
pixmap.

It is possible that there are more code pathes were we would need
a XPixmap. Currently tested is basic functionality of no-compositing,
XRender compositing, OpenGl/GLX and OpenGL ES/EGL compositing.

For OpenGL compositing raster might result in performance improvements,
for XRender it is possible that there are regressions when using raster.
By default KWin uses whatever is the default of the system, so we just
no longer enforce native.

Of course it is a bad idea to use graphicssystem OpenGL. As that
is broken anyways in Qt, we do not check for it.

Many thanks to Philipp Knechtges for bringing up the issue, convincing
me that we need it and providing most of the patch.

REVIEW: 101132
CCMAIL: Philipp.Knechtges@rwth-aachen.de
2011-05-12 18:52:38 +02:00
Jacopo De Simoi
2573bec755 XRender backend: do not process invalid shadow data 2011-05-09 11:14:20 -04:00
Jacopo De Simoi
57c2b33bce XRender backend: Paint shadow with window contents only, not with decoration
This notably fixes glitches with shadow menus of a well-known xul-based browser.
2011-05-06 09:53:04 -04:00
Jacopo De Simoi
42941eba8a kwin: Fix the clip intersection code (XRender)
Do not process windows if the clip region does not
intersect the window region
2011-04-28 11:39:59 -04:00
Jacopo De Simoi
e688058235 kwin: Implement shadows in XRender compositor
There are still some glitches to be fixed, but
it works well for most use-cases.
2011-04-28 11:39:48 -04:00
Martin Gräßlin
022d7a32a0 Remove binding of selection to styled EffectFrame
This allows to just set the selection on a None EffectFrame so
that only the selection is rendered without blurring the background
and so on.
2011-04-28 13:49:22 +02:00
Jacopo De Simoi
696d2da570 Fix glitches with scaled windows for the XRender backend
Scale window contents and decorations togheter in order to
avoid 1px glitches caused by rounding errors;
This has the net benefit of scaling only one pixmap instead of two
for each window*clipper and should actually give some performance bonus

I've tested this for some time with no issues, but this commit
*might* cause regressions. In case, let me know.
CC: kwin@kde.org
2011-04-25 11:13:20 -04:00
Jacopo De Simoi
82150abeb3 Fix jerky animations for the XRender backend
The code controlling timing for the animations
assumes that all painting is finished when the
Scene has finished painting. Since the X protocol
is asyncronous we need to call XSync (and not XFlush)
to make sure all painting has finished.
Tested for more than 2 weeks without issues.

NB: This is the same commit as
d0cf7ff6da4c6f8bcc684dd6378e2af09d36bb06
due to style changes in kwin code I could not cherry-pick
it cleanly
2011-03-15 22:39:32 +01:00
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
Luboš Luňák
c29c66832d Make quads carry information about whether the quad is part
of decoration or the actual window contents.


svn path=/trunk/KDE/kdebase/workspace/; revision=689554
2007-07-18 15:01:59 +00:00
Luboš Luňák
263defdb87 Detect XRender initialization failures.
svn path=/trunk/KDE/kdebase/workspace/; revision=688970
2007-07-17 11:02:27 +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
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
Harri Porten
1768b04b53 compile without Xfixes extension
svn path=/trunk/KDE/kdebase/workspace/; revision=661762
2007-05-06 14:38:28 +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
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
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
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
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
c16656d66d Rework how window painting is disabled; now effects can indicate reasons they want particular windows painted or not.
This solves a few problems, but may need revisiting in the future.

svn path=/branches/work/kwin_composite/; revision=632581
2007-02-11 17:36:32 +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
Luboš Luňák
63a97b7d3d Add DesktopChangeSlideEffect, an effect that on virtual desktop
change slides the old desktop out and the new one in. Should not
be really technically different from the cube.


svn path=/branches/work/kwin_composite/; revision=629163
2007-02-01 17:20:48 +00:00
Luboš Luňák
904fd1e3d0 Match handling of PAINT_WINDOW_DISABLED.
svn path=/branches/work/kwin_composite/; revision=629154
2007-02-01 16:23:44 +00:00
Luboš Luňák
0ae5a772e7 Add EffectWindow as a window representation for effects,
to hide the change from Client/Unmanaged and eventually also
act as the only API available to effects.


svn path=/branches/work/kwin_composite/; revision=626360
2007-01-22 22:57:22 +00:00
Luboš Luňák
77f803a563 Instead of the somewhat fragile way of trying to clean up Client/Unmanaged
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
2007-01-22 22:51:30 +00:00
Luboš Luňák
8a3af8dcca X.org docs have moved again.
svn path=/branches/work/kwin_composite/; revision=623807
2007-01-15 14:58:35 +00:00
Philip Falkner
e3cf0dd455 Move window_pix into Toplevel, allowing the backing pixmap to be kept even after a window is unmapped.
This is needed for effects to make use of unavailable windows, such as when closing a window.

svn path=/branches/work/kwin_composite/; revision=622777
2007-01-12 23:21:36 +00:00
Luboš Luňák
f4211bbe2f I love C APIs.
svn path=/branches/work/kwin_composite/; revision=610616
2006-12-04 18:35:08 +00:00
Luboš Luňák
f1be2aa724 Optimize XRender painting by manually doing clipping, even with transformations.
Since it's unlikely XRender code will use other transformations then the ones
provided this should be ok. Makes painting with obscured windows much faster
(i.e. it's just slow, not bloody slow).


svn path=/branches/work/kwin_composite/; revision=610613
2006-12-04 18:30:41 +00:00
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
a643ff2b00 Try to use XComposite overlay also with XRender.
svn path=/branches/work/kwin_composite/; revision=610137
2006-12-03 13:38:16 +00:00
Luboš Luňák
a03b796335 Screen scaling.
svn path=/branches/work/kwin_composite/; revision=610135
2006-12-03 13:37:44 +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
db18481380 XRender window scaling, based on a patch by Philip Falkner.
svn path=/branches/work/kwin_composite/; revision=610133
2006-12-03 13:32:52 +00:00
Luboš Luňák
3374f1fbda It seems there's a different place in fd.o git where docs are stored.
svn path=/branches/work/kwin_composite/; revision=608405
2006-11-27 14:20:40 +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
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
548eb09a74 Move shared code to base class.
svn path=/branches/work/kwin_composite/; revision=598752
2006-10-24 13:38:31 +00:00
Luboš Luňák
1d7b94acfc Basic window transformations.
svn path=/branches/work/kwin_composite/; revision=597997
2006-10-22 10:15:19 +00:00
Luboš Luňák
779597a648 Basic screen transformation.
svn path=/branches/work/kwin_composite/; revision=597815
2006-10-21 18:07:00 +00:00
Luboš Luňák
ddab4e0d2c Move functionality to the base Scene class.
svn path=/branches/work/kwin_composite/; revision=596186
2006-10-16 21:06:34 +00:00
Luboš Luňák
caed149f40 Add pre-paint passes that will allow finding out how the painting will be done.
svn path=/branches/work/kwin_composite/; revision=596109
2006-10-16 18:46:07 +00:00
Luboš Luňák
338adc9ad5 Throw away old code for effects and start anew.
svn path=/branches/work/kwin_composite/; revision=595965
2006-10-16 10:12:48 +00:00
Luboš Luňák
d547cf8cd4 Move duplicated functionality to the base class.
svn path=/branches/work/kwin_composite/; revision=595639
2006-10-15 08:58:38 +00:00
Luboš Luňák
a3538cd80a Use QRegion as much as possible to get even closer to the opengl code.
svn path=/branches/work/kwin_composite/; revision=595627
2006-10-15 07:41:19 +00:00
Luboš Luňák
c7584b3bf8 Change xrender code to match the opengl code.
Also dump the support for the current effect code, as that will
have to go anyway.


svn path=/branches/work/kwin_composite/; revision=595579
2006-10-14 22:08:51 +00:00
Luboš Luňák
d44a4a3676 Fix ARGB windows with decorations for XRender as well.
svn path=/branches/work/kwin_composite/; revision=593454
2006-10-07 21:21:02 +00:00
Luboš Luňák
b168c35384 Don't cache window pixmap, it's used only after it
changes.


svn path=/branches/work/kwin_composite/; revision=593453
2006-10-07 21:20:23 +00:00
Luboš Luňák
4d7a859bf3 No need to create special alpha mask when there's no opacity,
it defaults to the right mask.


svn path=/branches/work/kwin_composite/; revision=593452
2006-10-07 21:19:23 +00:00
Luboš Luňák
06203d0652 Don't bother with trying to transform window damage,
when there are any transformations, it should simply
repaint everything (todo).


svn path=/branches/work/kwin_composite/; revision=593450
2006-10-07 21:18:36 +00:00
Luboš Luňák
649887d6c2 Looks like using XserverRegion for keeping damage regions
wasn't that good idea. Changed to QRegion.


svn path=/branches/work/kwin_composite/; revision=590648
2006-09-30 15:40:03 +00:00
Luboš Luňák
1c7e7bb2b7 Keeping scene-related data in opengl scene.
svn path=/branches/work/kwin_composite/; revision=590319
2006-09-29 19:05:36 +00:00
Luboš Luňák
fd5987dd45 Move some functions to the internal class to make the main code more
readable.


svn path=/branches/work/kwin_composite/; revision=561946
2006-07-13 17:24:29 +00:00
Luboš Luňák
6ca12726de Oops.
svn path=/branches/work/kwin_composite/; revision=559206
2006-07-06 19:14:38 +00:00
Luboš Luňák
28e3726f2e Basic transformations on the whole workspace.
svn path=/branches/work/kwin_composite/; revision=559204
2006-07-06 19:02:14 +00:00
Luboš Luňák
e6c23e4cd3 Ok, I give up, whoever wants more complicated transformations than just
translation are welcome to implement it themselves. I'm no graphics guy
after all and this seems to be far beyond me.


svn path=/branches/work/kwin_composite/; revision=559182
2006-07-06 18:22:01 +00:00
Luboš Luňák
0516e1e73b Add support for translation and add two "plugins" that
make windows transparent or shake them while moving.


svn path=/branches/work/kwin_composite/; revision=559013
2006-07-06 13:17:44 +00:00
Luboš Luňák
391bb6b28d Support for effects that affect opacity.
svn path=/branches/work/kwin_composite/; revision=558921
2006-07-06 09:55:10 +00:00
Luboš Luňák
c7f515630d Support for transparency.
svn path=/branches/work/kwin_composite/; revision=558690
2006-07-05 20:52:57 +00:00
Luboš Luňák
f400646a6d xrender compositing work - now it uses damage areas
to reduce amount of painting


svn path=/branches/work/kwin_composite/; revision=558580
2006-07-05 16:04:11 +00:00
Luboš Luňák
29111875e1 Very basic compositing with xrender.
svn path=/branches/work/kwin_composite/; revision=558481
2006-07-05 13:26:08 +00:00
Luboš Luňák
afcc9b6897 Prepare for scene rendering with different engines.
svn path=/branches/work/kwin_composite/; revision=558442
2006-07-05 12:30:03 +00:00