Commit graph

90 commits

Author SHA1 Message Date
Martin Gräßlin
ec8d860c4b Allow effects to change the number of desktops and inform effects when the number of desktops is changed.
svn path=/trunk/KDE/kdebase/workspace/; revision=1108239
2010-03-28 09:04:14 +00:00
Martin Gräßlin
9a86e83d6e Set the transformed geometry in WindowMotionManager when a window is dropped to a desktop in grid. This way the window does not jump to a random position on mouse release.
svn path=/trunk/KDE/kdebase/workspace/; revision=1104672
2010-03-18 09:27:01 +00:00
Jacopo De Simoi
abe42cf21f Recreate effectframe textures when compositing is disabled/enabled to avoid corruption
svn path=/trunk/KDE/kdebase/workspace/; revision=1062238
2009-12-14 09:49:06 +00:00
Jacopo De Simoi
239fa294b8 Use a set instead of a counter to keep track of moving windows, this is much less error-prone and allows to avoid corner cases
such as motions for the same window starting in the same frame.
BUG: 205632

svn path=/trunk/KDE/kdebase/workspace/; revision=1062214
2009-12-14 08:48:54 +00:00
Martin Gräßlin
0ecc15e119 Use a hash iterator instead of keys() to walk through the hash.
svn path=/trunk/KDE/kdebase/workspace/; revision=1060128
2009-12-08 08:37:01 +00:00
Darío Andrés Rodríguez
23dcb5d66a - Reduce the ammount of unused vars/parameters warnings
svn path=/trunk/KDE/kdebase/workspace/; revision=1049628
2009-11-15 15:41:16 +00:00
Lucas Murray
a0d07d12a2 Merged r970865:1049322 from /branches/work/kwin-tabbing
Adds window tabbing support to KWin.
FEATURE: 42023

svn path=/trunk/KDE/kdebase/workspace/; revision=1049334
2009-11-15 03:24:04 +00:00
Martin Gräßlin
77f0f0eaca Adding the missing pieces for a nice and fast letterbox resizing as a replacement for the drawbound resizing.
Perhaps we should not display the totally ugly drawbound when we have an active resize effect.
CCBUG: 208770
CCBUG: 152638

svn path=/trunk/KDE/kdebase/workspace/; revision=1042711
2009-10-30 14:22:33 +00:00
Martin Gräßlin
aff72003dd The TabBox passes KeyEvents to the effects. So we can navigate with left/right/up/down in presentwindows when used as alt+tab effect. Filtering is of course disabled.
svn path=/trunk/KDE/kdebase/workspace/; revision=1042596
2009-10-30 09:16:41 +00:00
Lucas Murray
3fd898cbf7 Less warnings please.
svn path=/trunk/KDE/kdebase/workspace/; revision=1031445
2009-10-05 07:58:12 +00:00
Andreas Kling
0204c2127c Fixed some uses of uninitialized data (SceneOpenGL::selfCheckDone and TimeLine::m_CurveShape)
svn path=/trunk/KDE/kdebase/workspace/; revision=1022613
2009-09-12 09:38:12 +00:00
Lucas Murray
da37b1f16d Don't const effect proxies.
svn path=/trunk/KDE/kdebase/workspace/; revision=1018656
2009-09-02 02:30:22 +00:00
Thomas Lübking
46148b6c80 slight performance for xrender shadows
svn path=/trunk/KDE/kdebase/workspace/; revision=967093
2009-05-12 14:12:46 +00:00
Martin Gräßlin
df64d69ac3 Let's fill the unstyled EffectFrame texture with black instead of white. So the texture modulate still produces the correct color and the shader has the correct color.
Correctly inverted colors in PresentWindows with invert effect.

svn path=/trunk/KDE/kdebase/workspace/; revision=962235
2009-05-01 20:41:43 +00:00
Lucas Murray
d69942d215 Reverted the text part of the previous commit, seems the bug is in Qt
(Premultiplied text painting on a non-premultiplied QImage). Fixed text
color of frameless and unstyled frames when using a Plasma theme that
has a non-white primary text color. Updated
GLTexture::convertToGLFormat() to use the latest version from Qt.

svn path=/trunk/KDE/kdebase/workspace/; revision=934008
2009-03-02 06:10:23 +00:00
Lucas Murray
6a9b6692e8 Fix rendering of text and unstyled frames in OpenGL mode. Now it looks
identical to what it is in XRender mode.

svn path=/trunk/KDE/kdebase/workspace/; revision=933999
2009-03-02 05:18:13 +00:00
Lucas Murray
baa3d7a1a5 SVN_SILENT Make EffectFrame actually work again.
svn path=/trunk/KDE/kdebase/workspace/; revision=930011
2009-02-22 14:55:56 +00:00
Lucas Murray
3b5ddddbc3 SVN_SILENT Fix excessive repainting in EffectFrame.
svn path=/trunk/KDE/kdebase/workspace/; revision=929979
2009-02-22 14:03:48 +00:00
Lucas Murray
1e91a66fd2 Added support for unstyled and frameless EffectFrames. Converted all
effects that display text or boxes to use the class. Minor speed
increase in XRender mode for those effects and a massive increase in
OpenGL mode (Double framerate in present windows in my case).

svn path=/trunk/KDE/kdebase/workspace/; revision=929951
2009-02-22 13:04:16 +00:00
Lucas Murray
58698d8c5d SVN_SILENT Fix XRenderless compile.
svn path=/trunk/KDE/kdebase/workspace/; revision=929761
2009-02-22 03:28:12 +00:00
Lucas Murray
e03748fba7 Added EffectFrame, a helper class that creates, manages and caches a
Plasma frame object. There are two ways to use this class: The first is
in "static" mode which gives the frame a set geometry and will not
change, the second is an automatic mode that creates the smallest
possible frame around the specified contents. Contents can either be
normal text and/or a QPixmap, useful for displaying the caption and icon
of the currently highlighed window.
Known bugs:
 - Does not detect Plasma theme changes, known to be in the Plasma
   library.
 - Slight graphical glitches, known to be in Qt 4.5.0 RC1.
Untested:
 - What happens when there is no Plasma theme installed.

svn path=/trunk/KDE/kdebase/workspace/; revision=929324
2009-02-21 04:53:13 +00:00
Lucas Murray
a1c82cd52b Added support for inter-effect communication through the use of proxy
classes. Example code has been added to present windows and desktop
grid, if this code is not to be used by KDE 4.3 it should be removed and
added to a test effect instead.

svn path=/trunk/KDE/kdebase/workspace/; revision=922039
2009-02-06 10:15:06 +00:00
Lucas Murray
71cdab755e Change motion dynamics algorithm and class structure. Animations are now
smoother and less "bouncy" than before and produce the same result at
any framerate. The Motion1D and Motion2D classes are now available and
replace the Motion<T> template for external use.

svn path=/trunk/KDE/kdebase/workspace/; revision=921104
2009-02-04 15:10:20 +00:00
Martin Gräßlin
fe9092dd89 Don't split window quads which have a size of zero. This should prevent crashes due to assert failing.
BUG: 177927

svn path=/trunk/KDE/kdebase/workspace/; revision=897801
2008-12-16 20:48:34 +00:00
Lucas Murray
2b22689c45 Paint effect text onto a QImage instead of a QPixmap. Makes OpenGL mode
faster, XRender slower and works around a subpixel font rendering problem.
BUG: 173089

svn path=/trunk/KDE/kdebase/workspace/; revision=888946
2008-11-25 15:15:26 +00:00
Lucas Murray
899d578c49 Merge Libkdecoration2 Git branch.
WARNING: Breaks shadow effect. I don't think it causes anything to crash anymore but it is VERY ugly visually.

Contains:
 - New decoration API that allows decorations to change the way shadows look.
 - Shadows now wobble.
 - API example code in the Oxygen decoration.
 - Added buildQuads() effect plugin hook.
 - Work on the shadow effect to use the new decoration shadow API as well.
 - Added IDs to WindowQuads.
 - Added public accessors to texture coords in WindowVertex.

Would like all this to be reviewed.

CCMAIL: kwin@kde.org

svn path=/trunk/KDE/kdebase/workspace/; revision=872473
2008-10-17 10:30:43 +00:00
Albert Astals Cid
882b909364 Add const & so we don't copy all that objects for nothing, faster effects for free!
svn path=/trunk/KDE/kdebase/workspace/; revision=869928
2008-10-11 12:38:46 +00:00
Luboš Luňák
1d2c54edcc Support for proper effect reconfiguration instead of reloading them.
Fixes e.g. the global animation combo not taking effect.


svn path=/trunk/KDE/kdebase/workspace/; revision=866903
2008-10-02 09:27:32 +00:00
Luboš Luňák
a3a10632e6 Fix last commit.
svn path=/trunk/KDE/kdebase/workspace/; revision=866886
2008-10-02 07:15:48 +00:00
Luboš Luňák
727397181a Avoid QTimeLine warnings with invalid timeline duration.
svn path=/trunk/KDE/kdebase/workspace/; revision=866697
2008-10-01 17:50:41 +00:00
Lucas Murray
68d958c237 Added reset methods to WindowMotionManager.
Fixed bug in present windows when if there is only one window on a Xinerama screen it is zoomed into nothingness when using the natural layout.
CCBUG: 171812

svn path=/trunk/KDE/kdebase/workspace/; revision=865798
2008-09-29 02:25:02 +00:00
Lucas Murray
283a16b13b Attempt at correcting the motion formula at low framerates. Still needs improvement.
svn path=/trunk/KDE/kdebase/workspace/; revision=863784
2008-09-23 07:10:27 +00:00
Lucas Murray
51aef64cd7 Added motion dynamic physics helper classes to the KWin effects API. These
classes are intended to be used to help effect authors move windows across
the screen smoothly and naturally.

Although not 100% complete the classes can be used for 2D operations in its
current state, an example of which is the included present windows update.
These classes can be expanded upon when the new modifiers are required.

I would like a generic, template-based motion manager class that can be used
for non-window objects as well as another 3D-enabled manager to be available
sometime in the future.

CCMAIL: kwin@kde.org

svn path=/trunk/KDE/kdebase/workspace/; revision=863561
2008-09-22 13:03:00 +00:00
Luboš Luňák
d0c1f5dd62 Disable shadow with effects that transform windows, such as wobbly,
since shadow currently can't handle that.
CCBUG: 161330


svn path=/trunk/KDE/kdebase/workspace/; revision=862309
2008-09-18 15:26:17 +00:00
Luboš Luňák
2a87593638 Add a global configuration option for animation speed. See description
of Effect::animationTime() for how-to-use.
TODO: Effects need to reload config after doing the change in the kcm.
NOTE: Default TimeLine constructor now creates invalid object, it is
necessary to explicitly call setDuration() in order to ensure all
animations respect this setting.

CCMAIL: kwin@kde.org


svn path=/trunk/KDE/kdebase/workspace/; revision=854690
2008-08-30 07:25:54 +00:00
Luboš Luňák
8e5f95a9d6 Make a more explicit distinction between using normalized and non-normalized
texture coordinates - it cost me hours to find out why something was misdrawing :(.


svn path=/trunk/KDE/kdebase/workspace/; revision=854546
2008-08-29 18:54:28 +00:00
Lucas Murray
00c95be210 Added text alignment support to paintText() functions
svn path=/trunk/KDE/kdebase/workspace/; revision=842497
2008-08-05 12:26:16 +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
Charles Samuels
258b8817a7 BUG: 166795
Assert fail with cube plugin

svn path=/trunk/KDE/kdebase/workspace/; revision=837891
2008-07-25 23:12:19 +00:00
Dirk Mueller
d46ff1342f fix link lines
svn path=/trunk/KDE/kdebase/workspace/; revision=829218
2008-07-07 20:56:56 +00:00
Luboš Luňák
8e936add92 assert( false ) -> abort(), to avoid no-return-value warning with NDEBUG
svn path=/trunk/KDE/kdebase/workspace/; revision=825094
2008-06-27 12:06:29 +00:00
Luboš Luňák
0ce86291c5 Some missing XRender counterparts for utility functions, from Thomas Lübking.
svn path=/trunk/KDE/kdebase/workspace/; revision=817548
2008-06-06 09:11:52 +00:00
Urs Wolfer
2876bf7217 add missing KWIN_HAVE_OPENGL_COMPOSITING check
BUG:162466

svn path=/trunk/KDE/kdebase/workspace/; revision=811956
2008-05-24 08:24:48 +00:00
Luboš Luňák
62d2631422 EffectsHandler::saturationSupported(), so that this is not OpenGL-only call.
svn path=/trunk/KDE/kdebase/workspace/; revision=805574
2008-05-08 19:06:28 +00:00
Luboš Luňák
602244e3a5 Use a convenience XRenderPicture constructor instead of hardcoding
XRender Formats.


svn path=/trunk/KDE/kdebase/workspace/; revision=805361
2008-05-08 10:08:10 +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
Sebastian Kügler
cac8ff3072 Make sure m_Progress is always double. Fixes restoring of
windows for me. Minimizing still doesn't animate here. :/

If someone sees the same problem, please let me know. There
also seems to be something fishy with the desktopgrid --
it's not showing windows on inactive desktops, sliding
animation and the grid-zoomout expose this.

svn path=/trunk/KDE/kdebase/workspace/; revision=804806
2008-05-06 23:03:23 +00:00
Sebastian Kügler
cc11082706 Keep internal time and progress accounting in sync. Spotted
by Martin Graesslin.

BUG: 161434
CCMAIL: ubuntu@martin-graesslin.com

svn path=/trunk/KDE/kdebase/workspace/; revision=803465
2008-05-02 23:30:17 +00:00
Sebastian Kügler
b953f0a046 Introduce TimeLine, a class providing non-linear animation patterns
to KWin effects.

The class basically wraps QTimeLine right now, but it's easy to pop
in function implementing different animation timeline patterns.

Patches to the first effects using this TimeLine are coming up ...

svn path=/trunk/KDE/kdebase/workspace/; revision=798719
2008-04-18 23:57:05 +00:00
Luboš Luňák
d8a3602e45 Add assert().
svn path=/trunk/KDE/kdebase/workspace/; revision=782273
2008-03-04 18:29:17 +00:00