Commit graph

37 commits

Author SHA1 Message Date
Martin Gräßlin
3125333f76 Fix logout effect including port to OpenGL 2
The logout effect was rather broken. First of all it was
excluded from build if OpenGL ES is present at build time. The
reason for this is that the effect did not work with GLES.

In order to fix that the vignetting is ported over to OpenGL 2
by using a dedicated shader. As well the lod based blur is
added through a dedicated shader and uses framebuffer blit to
get the current rendered buffer before rendering the logout
window into a texture.

Last but not least the isActive method was broken and is fixed
by checking whether the logout window is around.

BUG: 303096
FIXED-IN: 4.9.0
REVIEW: 105459
2012-07-09 21:02:57 +02:00
Martin Gräßlin
1de1204ecd Drop KWIN_HAVE_OPENGL defines in effects
OpenGL is nowadays a build dependency which obsoletes the define.

REVIEW: 105023
2012-05-27 16:37:26 +02:00
Martin Gräßlin
2007a7eab8 Use namespaced parameters in signals
Required to get scripting bindings working.
2012-03-12 21:37:40 +01:00
Philipp Knechtges
ef9aeafe0d kwin: Optimizing Blur Part II
This patch adds an optional texture cache to the blur effect such that damaged windows in
front of the blurred region dont trigger a repaint of the whole blurred region which pretty
often results in a avalanche repaint of nearly the whole screen.

REVIEW: 101977
2011-09-18 02:01:31 +02:00
Martin Gräßlin
fe4329a252 Only call active effects in the effect chain
Each effect is able to declare itself as currently being active,
that is transforming windows or painting or screen or doing anything
during the current rendered frame.

This change eliminates the hottest path inside KWin identified by
callgrind.

REVIEW: 102449
2011-08-29 07:06:58 +02:00
Martin Gräßlin
987bc837d9 Remove define KWIN_HAVE_OPENGL_COMPOSITING
Due to changes in build system we have always either OpenGL or OpenGL ES.
This allows to remove the KWIN_HAVE_OPENGL_COMPOSITING define. In the
effects the define is kept as KWIN_HAVE_OPENGL which can be used in
future to build also an XRender only effect system.
2011-08-13 16:46:43 +02:00
Martin Gräßlin
d0664a9c96 Ensure logout compiles with GLES 2011-07-27 18:34:31 +02:00
Martin Gräßlin
fda841787f Make Logout Effect work again with OpenGL 2 backend
It's more of a hack, but at least it is working again. Still needs
a proper rewrite to also support GLES.
2011-04-29 10:49:06 +02:00
Thomas Lübking
4bf61c556b fix ed70462a07ae650f01002c25ce5b5104f19f2892
ignoredWindows is not limited to the opengl backend
CCMAIL: kde@michael-jansen.biz
2011-04-25 14:38:13 +02:00
Michael Jansen
6630e49d1d Fix (hopefully) compile if KWIN_HAVE_OPENGL_COMPOSITING is not defined. Those members are not
defined in that case so don't maintain them here.

@kwin devs. Feel free to revert, improve or whatever comes to your mind.

CCMAIL: kwin@kde.org
2011-04-25 14:15:45 +02:00
Martin Gräßlin
e5e5c4a020 Move push/popRenderTarget to kwingluitls
(De)Activating a FBO is OpenGL specific and does not belong into EffectsHandler.
2011-03-13 14:34:30 +01:00
Martin Gräßlin
640fdc7b6d PropertyNotify becomes a signal 2011-03-12 19:18:19 +01:00
Martin Gräßlin
e355700e6e EffectsHandler emits windowDeleted signal
Workspace emits a deletedRemoved signal which the EffectsHandlerImpl translates
into a windowDeleted signal.
2011-02-27 10:47:42 +01:00
Martin Gräßlin
0b85768ec5 EffectsHandler emits windowClosed signal
Client and Unmanaged use a signal to notify that they are about to be closed.
The EffectsHandlerImpl is connected to those signals and emits the appropriate
windowClosed signal to which the effects are connected.
2011-02-27 09:25:45 +01:00
Martin Gräßlin
ab6f2ba1fd EffectsHandler emits windowAdded signal
All previously existing windowAdded methods are renamed to slotWindowAdded.
EffectsHandlerImpl is connected to Workspace's clientAdded signal, which is
emitted a little bit earlier than the previous direct method call. This might
change behavior.
Another signal is added to Workspace to signal that an unmanaged is added.
2011-02-25 22:06:02 +01:00
Thomas Lübking
c513099354 logout effect: remove deleted windows from list
fwd port of 04831d049f73bb38694d7cecc4ea170b2a26a149
2011-02-06 16:54:20 +01:00
Martin Gräßlin
0a7e48f7aa KWin uses kdelibs coding style. 2011-01-31 20:07:03 +01: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
Lucas Murray
54a4f80a7b Render logout vignetting even if FBOs are not available.
svn path=/trunk/KDE/kdebase/workspace/; revision=1051777
2009-11-20 06:48:05 +00:00
Lucas Murray
1b80aec136 Optimize logout vignetting and increase its resolution.
svn path=/trunk/KDE/kdebase/workspace/; revision=1051774
2009-11-20 06:09:15 +00:00
Lucas Murray
89384118ea Change the logout blur effect and fix a small animation issue when
reverting back.

svn path=/trunk/KDE/kdebase/workspace/; revision=1044210
2009-11-03 09:47:33 +00:00
Lucas Murray
f1460a0429 Fix compile when OpenGL is not available.
svn path=/trunk/KDE/kdebase/workspace/; revision=1032334
2009-10-07 15:10:15 +00:00
Lucas Murray
20f1a79d04 Less warnings please.
svn path=/trunk/KDE/kdebase/workspace/; revision=1031490
2009-10-05 09:47:13 +00:00
Lucas Murray
4d1bdd5a63 Prevent jerkiness of the first two frames of the logout blur effect by
starting the animation after the render target has been created.

svn path=/trunk/KDE/kdebase/workspace/; revision=1030718
2009-10-03 07:06:51 +00:00
Matthew John Dawson
16b1b1e695 Fix compile error in kwin's logout effect when opengl.
svn path=/trunk/KDE/kdebase/workspace/; revision=1009287
2009-08-09 16:04:39 +00:00
Thomas Lübking
51c9a0bf54 BUG: 201445
fix memleak on reconfigure and avoid heap allocation while not being in
action

svn path=/trunk/KDE/kdebase/workspace/; revision=1002976
2009-07-27 12:54:02 +00:00
Martin Gräßlin
59590e2ff5 Move pushRenderTarget() in logout effect into paintScreen(). That ensures that logout effect doesn't pop the render target of another effect.
BUG: 194230

svn path=/trunk/KDE/kdebase/workspace/; revision=973990
2009-05-28 11:37:02 +00:00
Martin Gräßlin
bc37b74c98 Correctly track logout dialog painting when logout animation has finished.
BUG: 194070

svn path=/trunk/KDE/kdebase/workspace/; revision=972884
2009-05-25 22:00:30 +00:00
Martin Gräßlin
d8178fa8c5 Do not alter window painted on top of logout window in logout effect. That is don't change saturation and don't blur.
BUG: 192318

svn path=/trunk/KDE/kdebase/workspace/; revision=966573
2009-05-11 12:14:41 +00:00
Martin Gräßlin
7a06c636b2 Reenable logout blur - we found the reason why it stopped rendering (popRenderTarget in assert statement). If someone still has problems with it, please yell.
svn path=/trunk/KDE/kdebase/workspace/; revision=960509
2009-04-28 15:00:56 +00:00
Lucas Murray
8ba7586d79 Disable logout effect blur by default as some graphics drivers don't
correctly fallback and I have yet to work out a way of accurately
detecting support.

svn path=/trunk/KDE/kdebase/workspace/; revision=935761
2009-03-06 06:10:00 +00:00
Lucas Murray
ccd068897c Don't desaturate the logout window if blur is not supported.
svn path=/trunk/KDE/kdebase/workspace/; revision=926535
2009-02-15 16:12:43 +00:00
Lucas Murray
792c7439f8 Fix OpenGL-less compile and make the effect actually display something
to the user if blur is not supported (Screen appears to freeze).

svn path=/trunk/KDE/kdebase/workspace/; revision=926527
2009-02-15 16:04:29 +00:00
Lucas Murray
f5790fcce1 Prevent the logout effect from crashing KWin on quit if blur is not
supported.

svn path=/trunk/KDE/kdebase/workspace/; revision=926395
2009-02-15 10:34:41 +00:00
Lucas Murray
b11d863033 Cleaned up the logout effect and fixed a whole pile of bugs that I
introduced when adding the blur animation.

svn path=/trunk/KDE/kdebase/workspace/; revision=923329
2009-02-08 16:04:02 +00:00
Lucas Murray
8f8c1d31ba Added blurring during the logout effect. As this is done entirely using
mipmaps the quality isn't the best. Might add a shader later that will
generate the final image so it uses mipmaps for realtime blurring while
using a high quality blur at the end.

svn path=/trunk/KDE/kdebase/workspace/; revision=923246
2009-02-08 14:07:00 +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/logout.cpp (Browse further)