Luboš Luňák
1927a283b3
Cache window quads since they usually don't change and this gives
...
few fps.
svn path=/trunk/KDE/kdebase/workspace/; revision=787978
2008-03-20 11:17:50 +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
Adriaan de Groot
214d575aa3
Qt3 -> Qt4 style includes.
...
qdrawutil.h doesn't seem to have a purely Qt4-style equivalent, so including the directory there disambiguates it from the Qt3 header.
svn path=/trunk/KDE/kdebase/workspace/; revision=770116
2008-02-02 20:54:19 +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
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
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
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
Laurent Montel
f32b3e8d92
Remove not necessary "class classname;"
...
svn path=/trunk/KDE/kdebase/workspace/; revision=671233
2007-06-04 08:24:29 +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
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
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
983df01853
Remove extra ';'.
...
svn path=/branches/work/kwin_composite/; revision=649945
2007-04-03 13:18:45 +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
f6ad1881e1
Support for window thumbnails.
...
svn path=/branches/work/kwin_composite/; revision=640344
2007-03-07 17:50:33 +00:00
Dirk Mueller
6883415ff4
KListBox->K3ListBox
...
svn path=/branches/work/kwin_composite/; revision=633055
2007-02-13 00:27:24 +00:00
Luboš Luňák
9704203415
More geometry accessors in wrapper classes.
...
svn path=/branches/work/kwin_composite/; revision=632603
2007-02-11 18:36:57 +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
949aa1a778
Add PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS flag, to be called by effects in prePaintScreen(). Indicates that some window(s) may have transformed geometry, so the whole screen should be repainted.
...
svn path=/branches/work/kwin_composite/; revision=632580
2007-02-11 17:35:10 +00:00
Dirk Mueller
21fdff0045
pedantic--
...
svn path=/branches/work/kwin_composite/; revision=631658
2007-02-08 17:44:10 +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
Rivo Laks
c2830a6360
Effects can now request windows to be subdivided into multiple quads.
...
Effects also get access to window's vertices. This can be used to change shape of
the window, e.g. for wobble effect
svn path=/branches/work/kwin_composite/; revision=626706
2007-01-24 11:51:38 +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
92652a187d
Support in scene painting code for drawing also hidden windows.
...
svn path=/branches/work/kwin_composite/; revision=621337
2007-01-08 17:05:58 +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
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
6b41c062c8
Remove the WrapperEffect hack, it's ugly.
...
svn path=/branches/work/kwin_composite/; revision=600155
2006-10-29 19:06:32 +00:00
Luboš Luňák
10b31e7222
Support for animations, still some todo's pending.
...
svn path=/branches/work/kwin_composite/; revision=598831
2006-10-24 19:17:48 +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
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
f14000b7fb
Implement all missing Scene virtuals.
...
svn path=/branches/work/kwin_composite/; revision=591145
2006-10-01 21:14:53 +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
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
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
afcc9b6897
Prepare for scene rendering with different engines.
...
svn path=/branches/work/kwin_composite/; revision=558442
2006-07-05 12:30:03 +00:00