Commit graph

493 commits

Author SHA1 Message Date
Martin Gräßlin
22bbd02a03 Forward port rev 1167908
Revert rev 1137490: it caused compositing not working with legacy NVIDIA drivers and might be responsible for freezes when changing config.
It can be reverted as there is already a better fix for buggy drivers present in 4.5.1.
Did I mention that I love drivers?
CCBUG: 243991
CCBUG: 241402

svn path=/trunk/KDE/kdebase/workspace/; revision=1167909
2010-08-25 17:00:36 +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
82febe84a6 Let's see if Krazy notices this change.
SVN_SILENT

svn path=/trunk/KDE/kdebase/workspace/; revision=1160049
2010-08-06 21:09:48 +00:00
Martin Gräßlin
6e31461039 Adding a new rendering flag for painting the screen with transformed windows but without triggering full repaints.
It is not always required to do a full repaint in each frame. E.g. in sliding popups the repaint areas are known and tracked.
This change reduces the painting overhead to just the window area.
Nevertheless I consider this change as experimental and will revert the commit in case it introduces rendering glitches.
Other effects which are good candidates for this flag is wobbly windows, magic lamp, minimize or in general all effects which transform just one window.

svn path=/trunk/KDE/kdebase/workspace/; revision=1158838
2010-08-03 21:33:27 +00:00
Martin Gräßlin
a9e31c66bf Only generate VBO, if the glGenBuffers has been resolved
BUG: 246194

svn path=/trunk/KDE/kdebase/workspace/; revision=1157460
2010-07-31 05:48:27 +00:00
Martin Gräßlin
b9bdf83159 Drop some more unused code in kwinglutils.
svn path=/trunk/KDE/kdebase/workspace/; revision=1155061
2010-07-26 20:32:25 +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
89c0ea0c8d Pass EffectFrame through all effects, so that they can do something with the frame.
E.g. set a shader to invert it.
CCBUG: 241389

svn path=/trunk/KDE/kdebase/workspace/; revision=1154071
2010-07-24 16:29:16 +00:00
Martin Gräßlin
6dfbd48488 This debug statement was never intended to be committed
svn path=/trunk/KDE/kdebase/workspace/; revision=1153933
2010-07-24 08:04:58 +00:00
Martin Gräßlin
6641ac5648 GLRenderBuffer supports legacy painting if VBOs are not available.
This gives us one API for both legacy and modern painting.
All glRenderGeometry* calls are deprecated as they use quads and
legacy painting.

svn path=/trunk/KDE/kdebase/workspace/; revision=1153911
2010-07-24 07:32:42 +00:00
Andreas Demmer
2bedb6bba9 initial commit of the KWin dashboard effect
svn path=/trunk/KDE/kdebase/workspace/; revision=1153704
2010-07-23 19:52:20 +00:00
Martin Gräßlin
b296b7a00c Generate correct tex coordinates for rendering a texture.
This way we can get rid of the texture matrix transformations when rendering a standard texture - no matter if it's inverted or not.

svn path=/trunk/KDE/kdebase/workspace/; revision=1152649
2010-07-21 16:36:26 +00:00
Martin Gräßlin
73d8041d5a We need normalized tex coords for vbo, too.
svn path=/trunk/KDE/kdebase/workspace/; revision=1152364
2010-07-20 20:51:44 +00:00
Martin Gräßlin
ee00a9f8f1 Restrict painting of texture to the current rendering region when using a VBO.
svn path=/trunk/KDE/kdebase/workspace/; revision=1152296
2010-07-20 16:45:13 +00:00
Martin Gräßlin
d732e2f56c On the road to more efficient painting: introducing new class GLVertexBuffer which encapsulates a vertex buffer object.
Used by GLTexture if GPU supports VBO.

svn path=/trunk/KDE/kdebase/workspace/; revision=1151906
2010-07-19 20:53:32 +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
6894bf6e86 Intel drivers add a whitespace at the end of the renderer string which makes it impossible to get a good blacklist with equal comparison.
So let's switch to a contains check, which makes it easier to have a blacklist, e.g. just GeForce.
CCBUG: 243181
CCBUG: 242985

svn path=/trunk/KDE/kdebase/workspace/; revision=1150353
2010-07-15 18:59:26 +00:00
Martin Gräßlin
5aba1baddb The nice things about unstable ABIs is that you can remove deprecated paintText* methods, which are not used by any effect.
svn path=/trunk/KDE/kdebase/workspace/; revision=1146500
2010-07-06 07:23:57 +00:00
Martin Gräßlin
8777c45677 It's the special time of the year again: let's increase the ABI version for 4.6
svn path=/trunk/KDE/kdebase/workspace/; revision=1146498
2010-07-06 07:05:01 +00:00
Martin Gräßlin
e39354ac81 Include the version in the blacklist separated from the renderer by colon dash colon.
svn path=/trunk/KDE/kdebase/workspace/; revision=1146496
2010-07-06 07:00:08 +00:00
Martin Gräßlin
4111a9f051 Support for adding a driver blacklist to be used in the lanczos filter and blur effect.
It uses a new config group Blacklist in kwinrc with two subgroups for Lanczos and Blur.
The key of each entry in the group referrences the vendor either using GL_VENDOR or GL_RENDERER, e.g. "Intel" in renderer for Intel based chips.
The value of the entries is a stringlist containing exactly the renderer information. This way it is possible to blacklist several mesa driver versions which are buggy.
The blacklist is currently empty and will be filled with a kconf update script (which could also be done by distributions). So all users who experience problems and are subscribed to the bugs receiving this message, please upload your glxinfo.
An example for a blacklist:
[Blacklist][Lanczos]
NVIDIA=GeForce 9400M/PCI/SSE2

CCBUG: 243181
CCBUG: 242985

svn path=/trunk/KDE/kdebase/workspace/; revision=1146195
2010-07-05 13:42:34 +00:00
Martin Gräßlin
63008bd807 Fix compile error with some OpenGL dev headers
svn path=/trunk/KDE/kdebase/workspace/; revision=1140417
2010-06-20 16:58:04 +00:00
Martin Gräßlin
cf3bcc6294 Try to get a FBO in the init method of GLRenderTarget. If the FBO is incomplete there is no need to claim that the driver supports FBO.
This is a workaround to the problem that some drivers do not return a complete FBO, but support the extension. Which caused the blur effect to get loaded without working and in consequence Plasma to use the blur-optimized and very translucent backgrounds.
CCBUG: 240956

svn path=/trunk/KDE/kdebase/workspace/; revision=1137490
2010-06-13 07:40:21 +00:00
Martin Gräßlin
633d80001f Add new role, so that fullscreen effects can enforce blurring of windows they know to be translucent and on a fixed position.
Used in cube animation for all sticky windows and in desktop grid for the add/remove desktops window.

svn path=/trunk/KDE/kdebase/workspace/; revision=1137489
2010-06-13 07:36:40 +00:00
Fredrik Höglund
6ab355a048 Add more detailed debug output in GLRenderTarget::initFBO().
CCBUG: 240956

svn path=/trunk/KDE/kdebase/workspace/; revision=1136053
2010-06-08 20:29:17 +00:00
Martin Gräßlin
191435d425 Move Lanczos filter from taskbarthumbnail effect into the scene and use it also in boxswitch, presentwindows and thumbnailaside effects.
svn path=/trunk/KDE/kdebase/workspace/; revision=1133901
2010-06-02 20:04:54 +00:00
Fredrik Höglund
e1161c2525 Don't paint windows that are not on the current activity.
svn path=/trunk/KDE/kdebase/workspace/; revision=1127193
2010-05-15 20:18:57 +00:00
Nikhil Marathe
8892169a86 Added Window menu action to toggle floating/tiled state of the client and the relevant Operation enum entry
svn path=/trunk/KDE/kdebase/workspace/; revision=1124058
2010-05-07 16:03:14 +00:00
Martin Gräßlin
fa7f160cb3 Window specific setting to skip window switchers (tabbox, present windows, desktop grid).
FEATURE: 171192
CCBUG: 179723

svn path=/trunk/KDE/kdebase/workspace/; revision=1122404
2010-05-03 20:04:44 +00:00
Hugo Pereira Da Costa
94e42cf134 Change KCommonDecoration preview label contents to contain only the decoration name
Removed custom painting of kdecoration previews in kcmdecoration.

svn path=/trunk/KDE/kdebase/workspace/; revision=1121963
2010-05-02 20:25:27 +00:00
Martin Gräßlin
f6ebb5d913 Texture scaling in resize effect and disabling the drawbound when the effect is present.
This provides a good resizing performance for users having problems with the live-updating resize.
Patch by Thomas Lübking.

svn path=/trunk/KDE/kdebase/workspace/; revision=1118714
2010-04-25 18:40:04 +00:00
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
Fredrik Höglund
732c05b281 Bump the ABI for EffectWindow::decorationInnerRect().
svn path=/trunk/KDE/kdebase/workspace/; revision=1102477
2010-03-12 16:39:47 +00:00
Fredrik Höglund
7ad2203084 Expose the decoration inner rect to effects.
svn path=/trunk/KDE/kdebase/workspace/; revision=1102475
2010-03-12 16:33:01 +00:00
Fredrik Höglund
7e68fc7c44 Use GL_BGRA instead of GL_RGBA when creating textures.
GL_BGRA is the native format, and should be faster since it doesn't
require any internal swizzling.

svn path=/trunk/KDE/kdebase/workspace/; revision=1102455
2010-03-12 15:17:01 +00:00
Fredrik Höglund
8d03842c05 Improve the debug output from checkGLError().
svn path=/trunk/KDE/kdebase/workspace/; revision=1102451
2010-03-12 14:55:34 +00:00
Martin Gräßlin
cc321b32cb Resolve glBlendColor function.
svn path=/trunk/KDE/kdebase/workspace/; revision=1102446
2010-03-12 14:41:24 +00:00
Davide Bettio
45bcf3173a * Removed "Advanced Button" from screensaver kcm.
* Screensaver screen edges settings have been merged with kwin screen edges settings.
* Removed screensaver priority configuration: we assume that users don't need to change screensaver priority.
REVIEWBOARD: http://reviewboard.kde.org/r/3240/

svn path=/trunk/KDE/kdebase/workspace/; revision=1101792
2010-03-10 22:25:20 +00:00
Fredrik Höglund
7ecca15342 Resolve glGetProgramivARB().
svn path=/trunk/KDE/kdebase/workspace/; revision=1101721
2010-03-10 18:15:04 +00:00
Luboš Luňák
74ae0b6d15 fix button order documentation to match reality
svn path=/trunk/KDE/kdebase/workspace/; revision=1101680
2010-03-10 15:02:36 +00:00
Fredrik Höglund
17a38a7cdb Resolve glUniform3fv() and glUniform4fv().
svn path=/trunk/KDE/kdebase/workspace/; revision=1100844
2010-03-08 20:38:30 +00:00
Benjamin Reed
dc233bdcd5 merge 1099530 from 4.4: add some missing include_directories
svn path=/trunk/KDE/kdebase/workspace/; revision=1099533
2010-03-05 18:30:04 +00:00
Fredrik Höglund
8bddbfca46 Bump the ABI.
svn path=/trunk/KDE/kdebase/workspace/; revision=1099525
2010-03-05 18:24:29 +00:00
Fredrik Höglund
55b5b593b2 Add EffectsHandler::decorationsHaveAlpha().
Effects can use this method to check if the decorations use
the alpha channel.

svn path=/trunk/KDE/kdebase/workspace/; revision=1099522
2010-03-05 18:21:14 +00:00
Fredrik Höglund
17db9864aa Resolve functions needed for ARB_fragment_program.
svn path=/trunk/KDE/kdebase/workspace/; revision=1099486
2010-03-05 17:26:04 +00:00
Fredrik Höglund
cb97465581 Add convenience accessors to GLTexture for the width and height.
svn path=/trunk/KDE/kdebase/workspace/; revision=1099477
2010-03-05 17:09:22 +00:00
Fredrik Höglund
423ce5e170 Initialize mSize in the GLTexture(int width, int height) constructor.
svn path=/trunk/KDE/kdebase/workspace/; revision=1099475
2010-03-05 17:04:59 +00:00
Xavier Vello
070555e59e Commit patch from SlashDevDsp fixing #223515
crashed kcmkwin/kwindecoration

No need to backport to 4.4


svn path=/trunk/KDE/kdebase/workspace/; revision=1087519
2010-02-09 09:54:27 +00:00
Lucas Murray
51168e97a4 Keep the logout effect active until KWin is killed or the user cancels
the logout by using new information provided by KSMServer; Allow effects
to read and detect root window property notify events.

svn path=/trunk/KDE/kdebase/workspace/; revision=1083335
2010-02-01 07:44:27 +00:00