Commit graph

35 commits

Author SHA1 Message Date
Martin Gräßlin
31386d2f25 Drop unused variables
SVN_SILENT
2011-08-31 17:55:04 +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
Jaime Torres
664aaa1b60 ++ prefix for non-trivial data-types
change suffix ++ to prefix ++ to speed up a little bit not-trivial
data-types. discovered by cppcheck

REVIEW: 102057
2011-08-02 17:21:56 +02:00
Martin Gräßlin
eae91e189c Remove include to kwinglutils.h from kwineffects
No more OpenGL is used in the effects library itself.
2011-07-05 20:40:27 +02:00
Martin Gräßlin
3524e70fe2 Drop EffectsHandler::saturationSupported
Not used by any effect or anywhere in core.
2011-07-05 20:35:32 +02:00
Martin Gräßlin
9b9f4619b0 Remove scissoring code from PaintClipper
Not used any more and means we don't have OpenGL code in kwineffects.
2011-07-05 20:18:19 +02:00
Michael Zanetti
e1bf590a1c - fixes calculation of WindowMotionManager in case a new destination is set when the window is not at its original position and provide a function to check if windows
are currently moving (by Thomas Lübking)
- make use of new function and bugfix in SlideBack effect
2011-06-20 21:56:56 +02:00
Martin Gräßlin
a05ad98896 Remove textureWidth/textureHeight from all Shaders
The uniforms textureWidth and textureHeight were only needed for
normal windows. For everything else it was just 1.0/1.0, that is
normalized.

The makeArrays method is changed to produce normalized texcoords
obsoleting the need for these uniforms. So two uniforms less, one
calculation in vertex shaders less and many many lines of code
removed.

At the same time makeArrays is also adjusted to take care of
yInverted of the texture, which is needed as we no longer can use
the enableUnnormalizedTexCoords which did the yInverted transformation.

REVIEW: 101646
2011-06-19 20:54:13 +02:00
Thomas Lübking
676d180e4f remove comments from commit 7da7090bc802a8b9d1ee0a969ea794921a74b86b 2011-04-28 21:43:13 +02:00
Thomas Lübking
48d8864090 remove QHash::operator[] from the motionmanager and sharpen the ::finish condiion
CCBUG: 252986
2011-04-28 14:34:45 +02:00
Jan Gerrit Marker
2407b0fbc4 Make present windows effect not preserve space for windows from other activities
REVIEW:101180
CCBUG:242555
2011-04-24 14:26:46 +02:00
Martin Gräßlin
6e7e1c530b Remove transformWindowDamage effects hook
It is not used by any effect, so we save one complete go through
all effects pass on each window damage.

The functionality which could be provided by this hook can also be
implemented using the window damaged signal.
2011-03-15 20:38:37 +01:00
Martin Gräßlin
82b8f8d2fc Drop the driver blacklist
Let's face it: it was a bad idea and the blacklist never got updated.
2011-03-15 20:11:11 +01:00
Martin Gräßlin
f213b7da70 Drop KWin::TimeLine from kwineffects
The KWin::TimeLine class was only a small wrapper around QTimeLine
without adding anything to QTimeLine what is not present in QTimeLine.
The initial idea was to make it possible to provide more curve shapes.
This is now obsoleted by Qt shipping more useful curves with QTimeLine.

So let's clean up a little bit and use QTimeLine directly instead of
the small wrapper.

All effects are adjusted to use QTimeLine directly.
2011-03-14 22:50:05 +01: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
32c903b05b Rework signals for move/resize windows
First a signal is emitted when the user starts a move/resize operation.
During the move/resize operation each geometry change emits an update signal.
Last but not least a finish signal is emitted.

This eliminates the specific method for geometry updates in drawbound resize
mode.
2011-03-13 12:41:30 +01:00
Martin Gräßlin
640fdc7b6d PropertyNotify becomes a signal 2011-03-12 19:18:19 +01:00
Martin Gräßlin
88d50727ee WindowDamaged becomes a signal 2011-03-12 15:04:22 +01:00
Martin Gräßlin
39ab2cf29e MouseChanged becomes a signal 2011-03-12 14:37:30 +01:00
Martin Gräßlin
911098ee76 WindowGeometryShapeChanged becomes a signal 2011-03-12 12:34:59 +01:00
Martin Gräßlin
dcebc7481b ClientGroupItem* become signals
This needs to be improved in core. Currently ClientGroup does not yet
emit signals, as it would be difficult to connect them. Nevertheless
the effects dependency should be removed.
2011-03-06 21:15:09 +01:00
Martin Gräßlin
747afb4225 NumberDesktopsChanged becomes a signal
TODO: connect DesktopChangeOSD also to the signal
2011-03-06 20:10:11 +01:00
Martin Gräßlin
15757e953a TabBox uses signals to notify the effects
EffectsHandlerImpl just forwards the signals from TabBox. In order
to have a valid pointer to the TabBox, the TabBox is now initialized
before compositing in Workspace.
2011-03-06 12:15:16 +01:00
Martin Gräßlin
a404ec4259 WindowUnminimized becomes a signal 2011-03-06 11:08:19 +01:00
Martin Gräßlin
012222037e WindowMinimized becomes a signal 2011-03-06 10:55:27 +01:00
Martin Gräßlin
edd0950f96 WindowOpacityChanged becomes a signal 2011-03-06 10:30:23 +01:00
Martin Gräßlin
eeb10c69d5 Signal for windowUserMovedResize
In core a new signal is added for maximizedState change of client.
Other function calls remain as direct calls for the moment.
2011-02-28 21:03:13 +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
0795ae89ac EffectsHandler emits signal on windowActivated
EffectsHandlerImpl connects to the Workspace signal clientActivated.
The emitting of the signal is slightly moved from before the activation logic
to after the activation logic. This might change behavior in the scripting
component, but the previous code looked wrong.
2011-02-27 10:05:04 +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
Martin Gräßlin
c3a076b6a5 EffectsHandler emits desktopChanged signal
The first signal used between EffectsHandler and Effects.
The signal is actually emitted by the EffectsHandlerImpl and only
the interested effects connect to this signal.
EffectsHandlerImpl itself is also notified by a signal from Workspace,
allowing to remove one of the many if (effects) checks.
2011-02-25 20:41:10 +01:00
Martin Gräßlin
b3a5639967 EffectsHandler and Effect become QObjects
This is in preparation for allowing to connect effects with signals and slots.
2011-02-25 20:25:21 +01:00
Martin Gräßlin
57d11c134a Move kwineffects library into own directory
Second part of cleaning up the lib directory: the effects library
now lives in libkwineffects/ directory.

For existing effects nothing changes as the install path is unchanged.
The change obsoletes the lib/ directory.

As glplatform.h has not yet been exported I dared to export it and
adjust the places where it is used.
CCMAIL: kwin@kde.org
2011-02-19 10:01:31 +01:00
Renamed from lib/kwineffects.cpp (Browse further)