Commit graph

507 commits

Author SHA1 Message Date
Fredrik Höglund
f5a25b4ebb Don't query GL_SHADING_LANGUAGE_VERSION when GLSL isn't supported.
svn path=/trunk/KDE/kdebase/workspace/; revision=1201788
2010-11-28 17:16:45 +00:00
Fredrik Höglund
74101f90f7 Add a function for printing the results of the detection code.
svn path=/trunk/KDE/kdebase/workspace/; revision=1201780
2010-11-28 17:07:23 +00:00
Fredrik Höglund
bdd0273411 Add detection of limited texture NPOT support.
svn path=/trunk/KDE/kdebase/workspace/; revision=1198553
2010-11-18 21:47:29 +00:00
Fredrik Höglund
6118a5b983 Add the new and improved OpenGL platform detection code.
svn path=/trunk/KDE/kdebase/workspace/; revision=1195845
2010-11-12 05:30:38 +00:00
Thomas Lübking
68fbd31ad8 add windowgeometry tip effect, bind it to the general setting and generalize effect feature provide api, thus update resize effect
BUG: 219755

svn path=/trunk/KDE/kdebase/workspace/; revision=1195300
2010-11-10 19:21:56 +00:00
Martin Gräßlin
6353d6ff57 Don't blur behind opaque window decorations.
Adding a new AbilityUsesBlurBehind which can be set by decorations with
alpha channel to request that the background can be blurred. This improves
the situation for our completely opaque default Oxygen decoration.

This change is a behavior change in comparison to 4.5! Translucent decorations do
not get blurred by default any more.
CCMAIL: craig.p.drummond@googlemail.com

svn path=/trunk/KDE/kdebase/workspace/; revision=1195274
2010-11-10 18:33:07 +00:00
Kevin Ottens
dcded20d84 Cleanup KLibLoader use.
svn path=/trunk/KDE/kdebase/workspace/; revision=1195243
2010-11-10 16:42:52 +00:00
Martin Gräßlin
382d5b15d3 Ignore Paint Clipper when rendering to FBO.
See Review Request http://svn.reviewboard.kde.org/r/4329/

svn path=/trunk/KDE/kdebase/workspace/; revision=1191903
2010-11-01 12:09:53 +00:00
Martin Gräßlin
3e689ff201 Cache generated Lanczos textures.
This provides a significant performance improvement especially for Present Windows.
Whenever a lanczos resampling is done the resulted texture is cached, till the
window is damaged or a texture of different size is required. This means that
for a taskbar thumbnail the resampling only occurs once unless the window is damaged
and for present windows it only occurs when the windows are resized and then only
after the windows have already been moved. Highlighting windows does not cause
a resampling any more.
See review request http://svn.reviewboard.kde.org/r/5708/

svn path=/trunk/KDE/kdebase/workspace/; revision=1191874
2010-11-01 10:46:11 +00:00
Martin Gräßlin
0174887114 Extend quick tiling to quarter of screen.
When moving a window to the upper or lower quarter of a screen edge the window will be quick tiled to the responsible quarter of the screen.
Moving the window to the middle half of the screen will do the normal quicktiling to half of screen, quick maximization at top screen is unchanged.
Thanks to Arthur Arlt for his first code contribution to KDE.
See Review Request http://reviewboard.kde.org/r/5661
CCMAIL: arre2000@gmx.de

svn path=/trunk/KDE/kdebase/workspace/; revision=1190361
2010-10-27 13:16:36 +00:00
Christoph Thielecke
355bb28f70 include to better place moved
svn path=/trunk/KDE/kdebase/workspace/; revision=1184245
2010-10-09 15:14:21 +00:00
Christoph Thielecke
2175722fe9 added missing define if nessary (compile fix for lenny)
svn path=/trunk/KDE/kdebase/workspace/; revision=1184229
2010-10-09 13:53:50 +00:00
Laurent Montel
e810dbc582 Use script to add QLatin1String in setObjectName directly
svn path=/trunk/KDE/kdebase/workspace/; revision=1177599
2010-09-20 18:18:36 +00: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
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