Commit graph

48 commits

Author SHA1 Message Date
Martin Gräßlin
d2e9e039bd It helps to trigger a repaint if the cube should rotate.
BUG: 208520

svn path=/trunk/KDE/kdebase/workspace/; revision=1042447
2009-10-29 20:21:09 +00:00
Martin Gräßlin
10f0a1c3af Only use cube in static desktop list. Doesn't make sense in random order.
CCBUG: 208520

svn path=/trunk/KDE/kdebase/workspace/; revision=1042389
2009-10-29 18:12:10 +00:00
Martin Gräßlin
1ae6878e76 Providing a way to render something inside the cube. Added as an example the glxgears to the test effects.
svn path=/trunk/KDE/kdebase/workspace/; revision=1038868
2009-10-22 07:06:44 +00:00
Lucas Murray
20f1a79d04 Less warnings please.
svn path=/trunk/KDE/kdebase/workspace/; revision=1031490
2009-10-05 09:47:13 +00:00
Martin Gräßlin
1e1cf86dc7 Initialize a variable, which could be read before it has been written to in a very, very unlikely case, with a useful value.
CCBUG: 196025

svn path=/trunk/KDE/kdebase/workspace/; revision=1004621
2009-07-30 16:01:25 +00:00
Martin Gräßlin
102b3c791b EffectFrame should be freed at end of cube animation, not at start of stop animation.
svn path=/trunk/KDE/kdebase/workspace/; revision=1003585
2009-07-28 12:20:19 +00:00
Martin Gräßlin
af108ed88f Remove default shortcuts for cylinder and sphere. The effect isn't enabled by default and cylinder and sphere are not so important that it qualifies for a default shortcut.
svn path=/trunk/KDE/kdebase/workspace/; revision=1001760
2009-07-24 07:45:49 +00:00
Martin Gräßlin
d5c7fa7957 When zooming we have to recompile the rotation GlList as zoom factor is required to calculate the rotation.
svn path=/trunk/KDE/kdebase/workspace/; revision=971915
2009-05-23 17:18:20 +00:00
Martin Gräßlin
a3a35f92bb Mirror the bottom cube cap in y direction. That makes cube a little bit more realistic.
svn path=/trunk/KDE/kdebase/workspace/; revision=971753
2009-05-23 12:40:04 +00:00
Martin Gräßlin
20a7f2079c Use OpenGL to modify the cube cap instead of manipulating the pixels of the source QImage. Don't know why I did it that way.
The cap color is used as a background for tranclucent pixels and opacity is set to cube opacity. Changed to clamp to border and using cap color as border color.

svn path=/trunk/KDE/kdebase/workspace/; revision=962425
2009-05-02 13:37:59 +00:00
Martin Gräßlin
37f48027f2 New cube reflection which moves reflection down to touch the cube in its lowest point. Thanks to Michal Srb for the patch. It' really great.
There are two small todos: when mixing manual (mouse) rotation with cursor key rotation or zooming the reflection becomes wrong.
FEATURE: 178611

svn path=/trunk/KDE/kdebase/workspace/; revision=962205
2009-05-01 18:23:53 +00:00
Martin Gräßlin
144f578a5d Cylinder and Sphere use new setting of texture width and height. For that renaming windowWidth and windowHeight to textureWidth/Height. So finally the new argb decos work with cylinder and sphere.
svn path=/trunk/KDE/kdebase/workspace/; revision=959842
2009-04-27 11:35:35 +00:00
Martin Gräßlin
3e56e98281 Use opacity, brighness and saturation in shader for cylinder and sphere. That allows to have dimmed windows in these effects and correct window opacity.
svn path=/trunk/KDE/kdebase/workspace/; revision=956595
2009-04-20 11:07:47 +00:00
Albert Astals Cid
e74249083f const & for foreach 'iterators'
svn path=/trunk/KDE/kdebase/workspace/; revision=952187
2009-04-11 11:11:50 +00:00
Martin Gräßlin
69b8e33fce Check for the global shortcut in the effects so that the shortcut actually toggles the effect. This is a workaround needed because the keyboard grab disables the global shortcut.
FEATURE: 156155

svn path=/trunk/KDE/kdebase/workspace/; revision=946787
2009-03-30 11:27:57 +00:00
Martin Gräßlin
92484573f2 Effects can be activated at more than one electric border.
FEATURE: 180548

svn path=/trunk/KDE/kdebase/workspace/; revision=946404
2009-03-29 12:57:20 +00:00
Martin Gräßlin
f232a830aa Don't use the gl lists when a new window is added. This prevents the added window becoming black.
svn path=/trunk/KDE/kdebase/workspace/; revision=941274
2009-03-19 10:22:04 +00:00
Martin Gräßlin
141f166c56 No need to use different client area options in cube for one or multi screen setups any more. FullArea suits both now.
svn path=/trunk/KDE/kdebase/workspace/; revision=940985
2009-03-18 15:22:42 +00:00
Martin Gräßlin
7fc3bbf39d Drop the multi screen mode where the cube is scaled on one screen. So there is only the span cube on all screens option. The mode is dropped for the following reasons:
* it looks strange
 * it changes the projection matrix which makes the code ugly
 * it never worked with cylinder or sphere
 * it was broken in trunk anyway

svn path=/trunk/KDE/kdebase/workspace/; revision=940977
2009-03-18 15:01:21 +00:00
Martin Gräßlin
666a2224f4 Center desktop name box on active screen instead of the center of whole area. So the desktop name is always visible in multi screen setups and only shown on one screen.
svn path=/trunk/KDE/kdebase/workspace/; revision=940812
2009-03-18 10:45:46 +00:00
Martin Gräßlin
c016f07738 Use bigger quads for desktops in the rear, so that less vertices have to be processed by cylinder and sphere shader. That should improve the performance without influencing the visual appearance.
svn path=/trunk/KDE/kdebase/workspace/; revision=930495
2009-02-23 17:03:27 +00:00
Martin Gräßlin
752489aac5 Windows can't overlap desktop edges in cylinder or sphere mode. It results either in incorrect painting or in GL errors.
svn path=/trunk/KDE/kdebase/workspace/; revision=930083
2009-02-22 17:11:47 +00:00
Martin Gräßlin
b428fb46a0 Cube keeps rotating when mouse is at left or right screen edge.
BUG: 182454

svn path=/trunk/KDE/kdebase/workspace/; revision=930054
2009-02-22 15:57:26 +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
Martin Gräßlin
a6d8bb41bb Reactivating the use of a gl list for painting the cube. The cube is painted once without using the gl list. By that the problem of black windows on other desktops should be solved. If the black window problem appears again the patch will be reverted.
CCBUG: 183905

svn path=/trunk/KDE/kdebase/workspace/; revision=929840
2009-02-22 11:27:08 +00:00
Martin Gräßlin
eae6279ca9 Fill empty areas in multi screen setups in cylinder and sphere as well.
svn path=/trunk/KDE/kdebase/workspace/; revision=929833
2009-02-22 10:58:26 +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
Martin Gräßlin
445f021b06 Fix commit which broke shadows.
svn path=/trunk/KDE/kdebase/workspace/; revision=928975
2009-02-20 13:48:23 +00:00
Martin Gräßlin
c648f03313 A new vertex shader for cylinder effect using polar coordinates. Solves some painting problems.
Adding a new cylinder cap as well as the new cylinder is smaller than the old one.

svn path=/trunk/KDE/kdebase/workspace/; revision=928679
2009-02-19 20:32:20 +00:00
Martin Gräßlin
bdef1d7c5b Smoothly transform to cube and sphere during start animation and vice versa during stop animation.
Caps have to be deformed during start/stop as well.

svn path=/trunk/KDE/kdebase/workspace/; revision=928308
2009-02-19 11:50:00 +00:00
Martin Gräßlin
5025509e3a Distance between 3D windows is determined by the zoom position divided by the number of windows in stacking order when cube is activated.
svn path=/trunk/KDE/kdebase/workspace/; revision=928279
2009-02-19 11:03:40 +00:00
Martin Gräßlin
5e94274eb6 We cannot use glLists for painting the cube. It's causing black windows.
BUG: 183905

svn path=/trunk/KDE/kdebase/workspace/; revision=927767
2009-02-18 11:58:36 +00:00
Martin Gräßlin
cb28513163 New way to paint the windows overlapping screen edges. It works with the new windows hover above cube (still small painting sequence issues).
svn path=/trunk/KDE/kdebase/workspace/; revision=927720
2009-02-18 09:33:19 +00:00
Martin Gräßlin
ed311a899d Add an option so that windows can hover above the cube similar to 3D Windows plugin in Compiz. Currently this disables "windows overlapping edges" feature when this option is set (no change when not set).
FEATURE: 184689


svn path=/trunk/KDE/kdebase/workspace/; revision=927550
2009-02-17 20:47:02 +00:00
Martin Gräßlin
4fa09b63b4 Sphere and Cylinder become part of Cube effect. That is much more convenient than having an own effect for each (only loading the shader is actually required).
Btw caps of cylinder and sphere are working correctly again.

svn path=/trunk/KDE/kdebase/workspace/; revision=925809
2009-02-14 09:29:01 +00:00
Lucas Murray
1db192a11d Fixed cube from crashing due to mouse polling if it was activated and
deactivated too quickly.

svn path=/trunk/KDE/kdebase/workspace/; revision=922457
2009-02-07 05:52:25 +00:00
Martin Gräßlin
f7f5bc8326 Split cube mode and animation of desktop switching in separate effects: say hello to CubeSlide effect.
svn path=/trunk/KDE/kdebase/workspace/; revision=922342
2009-02-06 18:53:16 +00:00
Lucas Murray
81ffa5aec9 Raise electric border windows when an effect mouse input window is
created to allow effects to be toggled by active screen edges.

svn path=/trunk/KDE/kdebase/workspace/; revision=922121
2009-02-06 14:21:20 +00:00
Martin Gräßlin
502fdbb751 Cylinder and Sphere effect have their own shortcut. Nevertheless it's still not possible to use cube and cylinder or sphere. That'll be fixed when the effects are merged into cube.
BUG: 175788

svn path=/trunk/KDE/kdebase/workspace/; revision=922033
2009-02-06 09:51:04 +00:00
Martin Gräßlin
daa32a53fb Adding mouse wheel support to effects. First one to use is cube effect.
CCMAIL: marco.gulino@gmail.com

svn path=/trunk/KDE/kdebase/workspace/; revision=922031
2009-02-06 09:45:34 +00:00
Martin Gräßlin
a3c57fcab0 Option to not animate windows shown on all desktops during desktop switching animation.
svn path=/trunk/KDE/kdebase/workspace/; revision=922030
2009-02-06 09:39:57 +00:00
Martin Gräßlin
7b5a71d2dd Option to not change the opacity of windows in cube mode. That way only the cube (that is the desktops) will be painted in a transparent way.
FEATURE: 182195

svn path=/trunk/KDE/kdebase/workspace/; revision=922029
2009-02-06 09:37:18 +00:00
Martin Gräßlin
642ae708b5 Cube uses the pager layout to animate desktop switching (not the cube mode). This requires some more work including an option to use the old way (ignoring pager layout).
FEATURE: 167752

svn path=/trunk/KDE/kdebase/workspace/; revision=922028
2009-02-06 09:32:16 +00:00
Martin Gräßlin
026c90a983 Option to not animate the panels during desktop switching animation.
FEATURE: 177730

svn path=/trunk/KDE/kdebase/workspace/; revision=922026
2009-02-06 09:27:40 +00:00
Martin Gräßlin
59208e430a Option to invert mouse and cursor keys in cube mode.
FEATURE: 178398

svn path=/trunk/KDE/kdebase/workspace/; revision=922025
2009-02-06 09:24:12 +00:00
Martin Gräßlin
b81bf26c77 Fill empty spaces in multi screen setup with cube cap color if caps are used.
FEATURE: 169371

svn path=/trunk/KDE/kdebase/workspace/; revision=922024
2009-02-06 09:20:34 +00:00
Martin Gräßlin
a16aba4b05 Merge in the first changes from cube git branch (http://github.com/mgraesslin/kwin/tree/cube):
* Code restructuring and clean-up
 * Use of glLists to store the rotation and painting of the cube. That way things are only calculated when something changed. Painting the cube is still required in each frame as it would break all other effects.
 * Use face culling to paint the cube in the correct sequence.
 * Move loading of all settings to cube effect. In preparation of getting rid of cylinder and sphere classes

Known regression: cylinder and sphere caps are partly broken.

BUG: 171235

svn path=/trunk/KDE/kdebase/workspace/; revision=922023
2009-02-06 09:16:30 +00:00
Lucas Murray
846496d2c1 Cleaned up the effects/ directory by moving each individual effect into
its own directory, cleaned up the effect config macros and renamed
"MakeTransparent" to "Translucency" so that it matches its visible name.

svn path=/trunk/KDE/kdebase/workspace/; revision=921749
2009-02-05 15:35:38 +00:00
Renamed from effects/cube.cpp (Browse further)