Commit graph

396 commits

Author SHA1 Message Date
Laurent Montel
d7ecbaa14d Pedantic
svn path=/trunk/KDE/kdebase/workspace/; revision=963660
2009-05-05 06:25:35 +00:00
Fredrik Höglund
8bba7aed7d Make it possible for the decorations to paint outside the window frame
when compositing is enabled, by letting them add additional padding
to the sides of the frame.

svn path=/trunk/KDE/kdebase/workspace/; revision=963586
2009-05-04 22:35:33 +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
Martin Gräßlin
2830385a40 The assert for popRenderTarget in kwinshadereffect caused the kwin freezes as if assert has not been compiled in, the fbo will never be detached. So now we have working looking glass and sharpen effect back.
BUG: 183981

svn path=/trunk/KDE/kdebase/workspace/; revision=960039
2009-04-27 20:02:22 +00:00
Adriaan de Groot
c6c6af61a6 repaintShadow() isn't a const function, so don't cast that way.
svn path=/trunk/KDE/kdebase/workspace/; revision=959931
2009-04-27 15:14:29 +00:00
Martin Gräßlin
d7665af4f0 Texture width and height is stored in GLShader and the uniform value is set during prepareShaderRenderStates in scene_opengl. So the effects do not have to set the uniform manually. This is useful as other effects can still set this uniform if something different is rendered with a different texture width/height (e.g. shadows or thumbnails). When the window is finally rendered the original value set by the effect is definatelly used.
First effect to use this new way to set texture width and height is invert effect.

svn path=/trunk/KDE/kdebase/workspace/; revision=959835
2009-04-27 11:07:15 +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
0ffcc70c18 Add support for hardcoded non-KWin-related active screen edge actions,
first to be added is one to display the Plasma dashboard. Implemented
the "trigger cooldown" option. Fixed a few edge action conflicts such
as forcing desktop switches when moving windows and the like.
BUG: 170393

svn path=/trunk/KDE/kdebase/workspace/; revision=933166
2009-02-28 08:33:16 +00:00
Pino Toscano
4d66c9ce50 - slots -> Q_SLOTS
- KDE CamelCase includes should be in the form KDE/Foo

svn path=/trunk/KDE/kdebase/workspace/; revision=930393
2009-02-23 10:36:04 +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
699e8add4f SVN_SILENT Not required.
svn path=/trunk/KDE/kdebase/workspace/; revision=929586
2009-02-21 17:05:18 +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
469c28b2eb Effect API version += 19. Add buffer zone for 4.2 backports.
svn path=/trunk/KDE/kdebase/workspace/; revision=927678
2009-02-18 04:09:55 +00:00
Lucas Murray
893b0c2c71 Merge DesktopLayout class into Workspace.
svn path=/trunk/KDE/kdebase/workspace/; revision=926020
2009-02-14 15:40:52 +00:00
Lucas Murray
dd28e15a1b Allow desktop effects to access the new DesktopLayout class. Replaced
all code that used calcDesktopLayout() so the function could be removed.
Minor changes to the DesktopLayout class itself.

svn path=/trunk/KDE/kdebase/workspace/; revision=925930
2009-02-14 14:49:46 +00:00
Martin Gräßlin
57f57adaa4 Export method hasAlpha() from Toplevel to EffectWindow.
svn path=/trunk/KDE/kdebase/workspace/; revision=923320
2009-02-08 15:47:37 +00:00
Lucas Murray
13c2f21e9d Added EffectWindow::acceptsFocus(). Prevent present windows from
displaying windows that cannot be focused anyway (Such as conky).

svn path=/trunk/KDE/kdebase/workspace/; revision=923091
2009-02-08 08:45:21 +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
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
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
Lucas Murray
cbea219964 Missing code from mouse polling commit. Stop polling when compositing is
disabled and increment the effect API version number.

svn path=/trunk/KDE/kdebase/workspace/; revision=920963
2009-02-04 07:09:47 +00:00
Lucas Murray
752d5fa642 Extracted mouse polling out of the composite timer to allow effects to
detect mouse movement and modifier key changes even when KWin is idle.
As the track mouse effect requires polling to always be active disabling
it by default to prevent wasting CPU usage in the default install.

svn path=/trunk/KDE/kdebase/workspace/; revision=919711
2009-02-01 15:16:52 +00:00
Luboš Luňák
31e4e950b6 Handle Y inverting properly with normalized coordinates.
svn path=/trunk/KDE/kdebase/workspace/; revision=904306
2009-01-01 21:12:34 +00:00
Lucas Murray
8e6d18f7b3 Revert "Ported grid branch to a desktop effect."
I accidently committed the wrong Git branch to trunk. =\

svn path=/trunk/KDE/kdebase/workspace/; revision=897889
2008-12-17 03:14:33 +00:00
Lucas Murray
07653a50a7 Ported grid branch to a desktop effect.
Added resize functions to effect API.

svn path=/trunk/KDE/kdebase/workspace/; revision=897887
2008-12-17 03:10:41 +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
Alexander Neundorf
58d4ae29ff -also export kephal, kdecorations, kwineffects and ksrgd (or so)
Alex

CCMAIL: christoph@maxiom.de


svn path=/trunk/KDE/kdebase/workspace/; revision=895041
2008-12-09 21:27:30 +00:00
Alexander Neundorf
99b4b9dd88 -make kdebase build with the reduced link interface using target_link_libraries(... LINK_INTERFACE_LIBRARIES ...)
Alex



svn path=/trunk/KDE/kdebase/workspace/; revision=891438
2008-12-02 02:01:14 +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
6d41a1320e Moved all debug, warning and error messages into the KWin 1212 area.
Replaced deprecated kdDebug() with kDebug().
Removed empty debug messages.

svn path=/trunk/KDE/kdebase/workspace/; revision=885620
2008-11-17 15:04:52 +00:00
Pino Toscano
20d67bbf90 revert workaround, correctly fixed in the parent CMakeLists.txt
svn path=/trunk/KDE/kdebase/workspace/; revision=884628
2008-11-15 15:34:45 +00:00
Tim Beaulen
6cb544e4c3 Should fix kwin from not finding kephal/screens.h
svn path=/trunk/KDE/kdebase/workspace/; revision=884616
2008-11-15 15:11:10 +00:00
Guillaume Pothier
f780e8b68b Kephalized plasma and kwin: replaced usage of QDesktopWidget by Kephal
svn path=/trunk/KDE/kdebase/workspace/; revision=884482
2008-11-15 03:04:44 +00:00
Laurent Montel
5535a9de5e Fix iterator
svn path=/trunk/KDE/kdebase/workspace/; revision=883047
2008-11-11 23:09:11 +00:00
Enrique Matías Sánchez
f5efd9ca28 SVN_SILENT Fix typos in kdebase
svn path=/trunk/KDE/kdebase/workspace/; revision=875089
2008-10-23 09:31:44 +00:00
Lucas Murray
154c19b0e7 Make the client shadowOpacity() return a relative opacity instead of absolute.
svn path=/trunk/KDE/kdebase/workspace/; revision=873440
2008-10-19 13:43:16 +00:00
Lucas Murray
c07ba30b63 Fixed shadow effect losing its shadows after making changes to the settings.
Added force mode to buildQuads() to allow refreshing the cache.
Made EffectWindow::buildQuads() no longer internal.

svn path=/trunk/KDE/kdebase/workspace/; revision=872836
2008-10-18 10:31:59 +00:00
Lucas Murray
af1b639a9d Rename the new decoration API and mark it as unstable. Supporting a hacked API is suicide.
Will correctly handle this in KDE 4.3 by using ARGB decorations, even if it's not pretty.

svn path=/trunk/KDE/kdebase/workspace/; revision=872795
2008-10-18 08:10:37 +00:00
Lucas Murray
0442bcf1f7 Increment effect API version.
Added Martin and myself to the shadow effect copyright header.

svn path=/trunk/KDE/kdebase/workspace/; revision=872474
2008-10-17 10:30:52 +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
0cfe3b2c73 Fix indenting of decoration files.
svn path=/trunk/KDE/kdebase/workspace/; revision=863806
2008-09-23 07:54:28 +00:00