Commit graph

87 commits

Author SHA1 Message Date
Casian Andrei
22569f7eb9 Remove forceAlpha uniform, which is no longer needed
This was originally added by d467fc1bdbcf69bd6ef213bd909633c2edfb6878,
to prevent alpha ending up to be 0 with blending disabled. Apparently,
that was a driver issue that is no longer present.

REVIEW: 107090
2012-11-13 22:23:18 +02:00
Martin Gräßlin
cf5de22586 Introduce a build option KWIN_BUILD_OPENGL_1_COMPOSITING
If the build option is enabled KWIN_HAVE_OPENGL_1 is passed as a compile
flag when build against OpenGL.

This compile flag is meant to replace the KWIN_HAVE_OPENGLES. So far code
has been ifdefed for special behavior of OpenGL ES 2.0 and to remove
fixed functionality calls which are not available in OpenGL ES 2.0.

With this build flag the fixed functionality calls which are only used in
the OpenGL1 Compositor can be removed and keeping the KWIN_HAVE_OPENGLES
for the real differences between OpenGL 2.x and OpenGL ES 2.0.

E.g. a call like glColor4f should be in an
glColor4f(1.0, 1.0, 1.0, 1.0);

while a call like glPolygonMode should be in an
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

Building for OpenGL ES 2.0 of course implies that KWIN_HAVE_OPENGL_1 is
not defined.
2012-10-25 11:34:12 +02:00
Alexander Jones
bf2507b2fe Fixing author names in desktop files
BUG: 307928
FIXED-IN: 4.10
REVIEW: 106880
2012-10-18 07:29:14 +02:00
Martin Gräßlin
c2a4f81927 Introduce a helper class to automatically push/pop Shaders
The ShaderBinder class can be used for the case that a block of code
should be executed with a given Shader being bound. This is useful for
all the cases where there is a if-block for OpenGL2 execution with a
Shader being pushed in the first line to the ShaderManager and popped in
the last line of the block. With the helper this can be simplified to:

ShaderBinder binder(myCustomShader);

or

ShaderBinder binder(ShaderManager::GenericShader);

The ctor of ShaderBinder pushes the given Shader to the stack and once
the helper goes out of scope it will be popped again from the stack.

In addition the helper can take care of OpenGL 1 compositing, that is it
just does nothing. So it can also be used where there is a shared OpenGL1
and OpenGL2 code path where the Shader should only be pushed in OpenGL2.
This basically removes all the checks for the compositing type before
pushing/popping a Shader to the stack.

REVIEW: 106521
2012-09-29 15:33:57 +02:00
Martin Gräßlin
f9a2ecbf33 Do not use ShaderManager::isValid to check for OpenGL2 compositing
The main usage of ShaderManager::isValid was to have OpenGL2 specific
code pathes. Now we have an actual OpenGL2Compositing type and we know
that the ShaderManager is valid if we have this compositing type and we
know that it is not valid on OpenGL1Compositing. This gives us a much
better check and allows us to use the isValid method just for where we
want to check whether the shaders compiled successfully.

In addition some effects require OpenGL2, so we do not need to check
again that the ShaderManager is valid. Such usages are removed.
2012-09-29 15:33:57 +02:00
Martin Gräßlin
6d2dfe06e7 Introduce dedicated OpenGL1 and OpenGL2 compositing types
The CompositingType enum turns into flags and two new values are
introduced: OpenGL1Compositing and OpenGL2Compositing.

Those new values are or-ed to OpenGLCompositing so that a simple check
for the flag OpenGLCompositing works in case of one of those two new
values. To make the generic check for OpenGL compositing easier a method
in EffectsHandler is introduced to just check for this.

The scenes now return either OpenGL1Compositing or OpenGL2Compositing
depending on which Scene implementation. None returns OpenGLCompositing.
2012-09-29 15:33:57 +02:00
Martin Gräßlin
90365e27d0 Merge branch 'KDE/4.9'
Conflicts:
	khotkeys/data/kde32b1.khotkeys
	kinfocenter/Modules/opengl/opengl.desktop
	kwin/tabbox/tests/CMakeLists.txt
	plasma/generic/applets/system-monitor/plasma-applet-sm_hdd_activity.desktop
2012-08-17 17:59:49 +02:00
Martin Gräßlin
23f2de009b Effects can provide support information through properties
The supportInformation is extended to also read the properties
on all effects. In addition each effect can be queried just for
itself through D-Bus, e.g.:
qdbus org.kde.kwin /KWin supportInformationForEffect kwin4_effect_blur

All effects are extended to provide their configured and read
settings through properties. In some cases also important
runtime information is exposed.

REVIEW: 105977
BUG: 305338
FIXED-IN: 4.9.1
2012-08-17 17:49:49 +02:00
Martin Gräßlin
c7262e8bd3 Getter/setters for opacity, saturation and brightness in WindowPaintData
The public member variables for opacity, saturation and brightness
are removed in favor for getter and setters. The variables are
moved into a private class. Those are now qreal instead of double.

To make usage inside the effects easier a multiply method is added
which multiplies the current value with passed in factor and returns
the new value in a functional programming style.

This commit is the top-most of a patch series to refactor
ScreenPaintData and WindowPaintData. Other related commits are:
* 0811772
* ebdc7ec
* 2c8dd8d
* 7699726
* 68e0201
* 611cb09

REVIEW: 105141
BUG: 303314
FIXED-IN: 4.10
2012-07-19 18:25:48 +02:00
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
Script Kiddy
953d088b6a SVN_SILENT made messages (.desktop file) 2012-06-12 17:07:51 +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
Script Kiddy
d08182e72f SVN_SILENT made messages (.desktop file) 2012-01-04 09:38:43 +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
Script Kiddy
4cbbf921d4 SVN_SILENT made messages (.desktop file) 2011-09-09 09:21:44 +02:00
Script Kiddy
157f51ce85 SVN_SILENT made messages (.desktop file) 2011-09-08 09:04:13 +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
Script Kiddy
c3004ddc7b SVN_SILENT made messages (.desktop file) 2011-08-27 10:03:17 +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
Script Kiddy
d414f57c8d SVN_SILENT made messages (.desktop file) 2011-07-07 10:20:05 +02:00
Script Kiddy
976f396fc7 SVN_SILENT made messages (.desktop file) 2011-07-06 10:41:48 +02:00
Script Kiddy
3d0c81f121 SVN_SILENT made messages (.desktop file) 2011-05-17 10:49:34 +02:00
Script Kiddy
9d7c88d288 SVN_SILENT made messages (.desktop file) 2011-05-11 09:17:09 +02:00
Script Kiddy
cb2597dcaf SVN_SILENT made messages (.desktop file) 2011-05-09 09:32:40 +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
Script Kiddy
95c8ba2035 SVN_SILENT made messages (.desktop file) 2011-02-07 07:07:14 +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
Script Kiddy
15155326e2 SVN_SILENT made messages (.desktop file) 2011-02-03 07:25:47 +01:00
Script Kiddy
b637e9d7ca SVN_SILENT made messages (.desktop file) 2011-02-02 08:26:11 +01:00
Martin Gräßlin
0a7e48f7aa KWin uses kdelibs coding style. 2011-01-31 20:07:03 +01:00
Script Kiddy
9130426b18 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdebase/workspace/; revision=1213663

The following changes were in SVN, but were removed from git:

M	wallpapers/Air/metadata.desktop
M	wallpapers/Autumn/metadata.desktop
M	wallpapers/Blue_Wood/metadata.desktop
M	wallpapers/Grass/metadata.desktop
M	wallpapers/Hanami/metadata.desktop
M	wallpapers/Horos/metadata.desktop
M	wallpapers/Media_Life/metadata.desktop
M	wallpapers/Plasmalicious/metadata.desktop
M	wallpapers/Quadros/metadata.desktop
2011-01-11 09:07:40 +00:00
Script Kiddy
5f5e628c2b SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdebase/workspace/; revision=1198064
2010-11-17 09:42:13 +00:00
Script Kiddy
633a2ff59d SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdebase/workspace/; revision=1191511

The following changes were in SVN, but were removed from git:

M	wallpapers/Aghi/metadata.desktop
M	wallpapers/Air/metadata.desktop
M	wallpapers/Autumn/metadata.desktop
M	wallpapers/Blue_Wood/metadata.desktop
M	wallpapers/Ethais/metadata.desktop
M	wallpapers/Evening/metadata.desktop
M	wallpapers/Fields_of_Peace/metadata.desktop
M	wallpapers/Finally_Summer_in_Germany/metadata.desktop
M	wallpapers/Fresh_Morning/metadata.desktop
M	wallpapers/Grass/metadata.desktop
M	wallpapers/Hanami/metadata.desktop
M	wallpapers/Media_Life/metadata.desktop
M	wallpapers/Plasmalicious/metadata.desktop
M	wallpapers/Quadros/metadata.desktop
M	wallpapers/Red_Leaf/metadata.desktop
2010-10-31 09:11:11 +00:00
Script Kiddy
bb60cd51ce SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdebase/workspace/; revision=1177799

The following changes were in SVN, but were removed from git:

M	wallpapers/Blue_Wood/metadata.desktop
M	wallpapers/Ethais/metadata.desktop
M	wallpapers/Fields_of_Peace/metadata.desktop
M	wallpapers/Finally_Summer_in_Germany/metadata.desktop
M	wallpapers/Grass/metadata.desktop
M	wallpapers/Media_Life/metadata.desktop
M	wallpapers/Quadros/metadata.desktop
2010-09-21 10:01:09 +00:00
Script Kiddy
0cbd106422 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdebase/workspace/; revision=1120528
2010-04-29 06:39:50 +00:00
Script Kiddy
1713c07455 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdebase/workspace/; revision=1115065

The following changes were in SVN, but were removed from git:

M	wallpapers/Air/metadata.desktop
2010-04-15 06:07:57 +00:00
Script Kiddy
9118cc673f SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdebase/workspace/; revision=1101859

The following changes were in SVN, but were removed from git:

M	wallpapers/Aghi/metadata.desktop
M	wallpapers/Ethais/metadata.desktop
M	wallpapers/Media_Life/metadata.desktop
M	wallpapers/Plasmalicious/metadata.desktop
M	wallpapers/Quadros/metadata.desktop
2010-03-11 06:51:07 +00:00
Script Kiddy
cf3c3d17b8 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdebase/workspace/; revision=1098905

The following changes were in SVN, but were removed from git:

M	wallpapers/Aghi/metadata.desktop
M	wallpapers/Code_Poets_Dream/metadata.desktop
M	wallpapers/Curls_on_Green/metadata.desktop
M	wallpapers/Ethais/metadata.desktop
M	wallpapers/Evening/metadata.desktop
M	wallpapers/Fields_of_Peace/metadata.desktop
M	wallpapers/Finally_Summer_in_Germany/metadata.desktop
M	wallpapers/Fresh_Morning/metadata.desktop
M	wallpapers/Media_Life/metadata.desktop
M	wallpapers/Plasmalicious/metadata.desktop
M	wallpapers/Quadros/metadata.desktop
M	wallpapers/Red_Leaf/metadata.desktop
M	wallpapers/Spring_Sunray/metadata.desktop
M	wallpapers/The_Rings_of_Saturn/metadata.desktop
2010-03-04 16:46:17 +00:00
Script Kiddy
19f587ea46 SVN_SILENT made messages (.desktop file, second try)
svn path=/trunk/KDE/kdebase/workspace/; revision=1097842

The following changes were in SVN, but were removed from git:

M	wallpapers/Aghi/metadata.desktop
M	wallpapers/Air/metadata.desktop
M	wallpapers/Code_Poets_Dream/metadata.desktop
M	wallpapers/Curls_on_Green/metadata.desktop
M	wallpapers/Ethais/metadata.desktop
M	wallpapers/Evening/metadata.desktop
M	wallpapers/Fields_of_Peace/metadata.desktop
M	wallpapers/Finally_Summer_in_Germany/metadata.desktop
M	wallpapers/Fresh_Morning/metadata.desktop
M	wallpapers/Media_Life/metadata.desktop
M	wallpapers/Plasmalicious/metadata.desktop
M	wallpapers/Quadros/metadata.desktop
M	wallpapers/Red_Leaf/metadata.desktop
M	wallpapers/Spring_Sunray/metadata.desktop
M	wallpapers/The_Rings_of_Saturn/metadata.desktop
2010-03-02 09:26:45 +00:00
Script Kiddy
39829f28e0 SVN_SILENT made messages (.desktop file)
svn path=/trunk/KDE/kdebase/workspace/; revision=1085566

The following changes were in SVN, but were removed from git:

M	wallpapers/Aghi/metadata.desktop
M	wallpapers/Air/metadata.desktop
M	wallpapers/Code_Poets_Dream/metadata.desktop
M	wallpapers/Curls_on_Green/metadata.desktop
M	wallpapers/Ethais/metadata.desktop
M	wallpapers/Evening/metadata.desktop
M	wallpapers/Finally_Summer_in_Germany/metadata.desktop
M	wallpapers/Fresh_Morning/metadata.desktop
M	wallpapers/Media_Life/metadata.desktop
M	wallpapers/Plasmalicious/metadata.desktop
M	wallpapers/Quadros/metadata.desktop
M	wallpapers/Spring_Sunray/metadata.desktop
M	wallpapers/The_Rings_of_Saturn/metadata.desktop
2010-02-05 13:31:20 +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