Martin Gräßlin
ef7fd87d65
Mirror bottom cube cap in shader.
2011-01-30 14:12:02 +01:00
Martin Gräßlin
75a1ee7aa8
CubeCaps back in GLES mode.
...
This includes quite some refactoring. For the cube cap a VBO is used
instead of glLists and all the required transformations are moved into
paintCap() which makes paintScreen more clean.
Currently the mirroring of bottom texture is still missing and cylinder
and sphere caps are not yet ported to using VBO.
I wouldn't be surprised if it is broken for legacy GL atm.
2011-01-30 14:12:02 +01:00
Martin Gräßlin
e5b6baeda9
Reflection plane in cube effect and GLSL
2011-01-30 14:12:02 +01:00
Martin Gräßlin
82b8faadab
Welcome back Cube effect
...
Currently working:
* cube slide
* basic cube
* rotations
* reflections
Not working:
* Cube Inside effects
* Reflection plane (needs to be done in a shader)
* cube caps
* sphere/cylinder
* filled in areas in multi desktop
2011-01-30 14:12:01 +01: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
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
Martin Gräßlin
782d08e0b0
Don't hover sticky windows as that cannot work.
...
BUG: 203086
svn path=/trunk/KDE/kdebase/workspace/; revision=1105593
2010-03-20 17:54:04 +00:00
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