Commit graph

14037 commits

Author SHA1 Message Date
Martin Gräßlin
54870d5e14 [libkwinglutils] Cleanup Shader API: removal of ShaderType
As all effects are ported to the ShaderTraits API the old ShaderType
API can be completely removed.
2016-01-26 09:42:49 +01:00
Martin Gräßlin
1752302203 [effects] Use passed through matrix in Blur Effect
The blur effect so far calculated a custom model view projection matrix.
This is not needed as we have the current projection matrix available in
WindowPaintData and EffectFrame.

REVIEW: 126215
2016-01-25 15:36:10 +01:00
Martin Gräßlin
2e7bc0df87 [kwineffects] Pass screen projection matrix to EffectFrame
Exposes the current screen projection matrix in the render pass of
the EffectFrame, so that effects can make use of it.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
ef7f7b0179 [kwinglutils] Don't setup old shader API for rendering a texture
Old shader API no longer in use, so we don't need to setup the texture
rendering.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
84b73ab2b3 Drop remaining old shader API usage from SceneOpenGL
No effect uses old API, so we don't need to setup the old shaders
any more.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
67d79385cf [effects] Drop resetting GenericShader from cube effect
The cube effect no longer modifies any aspects of the GenericShader,
thus there is no need to reset any values.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
b258dc53b3 [effects] Change sphere to use shader traits variant 2016-01-25 14:11:54 +01:00
Martin Gräßlin
318fb6989b [effects] Change cylinder to shader traits variant 2016-01-25 14:11:54 +01:00
Martin Gräßlin
6e35aded0b [effects] Adjust Cube to use shader traits shader for window rendering
Main change is that the rotation for each face of the cube is now
done through a QMatrix4x4 instead of specifying through ScreenPaintData.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
b366f0ac01 Use shader traits API for lanczos filter's shader 2016-01-25 14:11:54 +01:00
Martin Gräßlin
99739106d1 Use shader traits API to render cached texture in lanczos filter 2016-01-25 14:11:54 +01:00
Martin Gräßlin
2f5de22ac8 [effects] Use shader traits API in logout blur 2016-01-25 14:11:54 +01:00
Martin Gräßlin
af67391710 [effects] Use shader traits API for vignetting in Logout 2016-01-25 14:11:54 +01:00
Martin Gräßlin
9aeb2f7907 [effects] Use shader traits API for lookingglass
In the long run this effect needs to be modified. Rendering the complete
scene to an FBO is not the best approach.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
18a15a59d5 [effects] Fix reflections in coverswitch
Got broken due to switch to Shader Traits API.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
a5e86c66bf [effects] Use shader traits for CoverSwitch reflection shader 2016-01-25 14:11:54 +01:00
Martin Gräßlin
9fcedcc2f8 [effects] Use shader traits in Resize 2016-01-25 14:11:54 +01:00
Martin Gräßlin
5c59f4261b [effects] Use shader traits API for reflection shader 2016-01-25 14:11:54 +01:00
Martin Gräßlin
6bdef479a9 [effects] Use shader traits API for CubeCap shader 2016-01-25 14:11:54 +01:00
Martin Gräßlin
712e46e468 [effects] Port startupfeedback to shader trait api
The blinking shader is adjusted to use a shader trait vertex shader
and gets generated with a shader trait variant.

Overall the code is simplified to ensure that we always have a shader
bound with the correct mvp matrix when rendering the icon.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
f13622a914 [effects] Use shader traits generated shader for invert effect
Source code needs minor adjustment to be compatible with the shader
traits variable naming.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
7facdb67ee [effects] Simplify setting mvp matrix for cursor in zoom effect
Now that we pass the projection matrix with screen paint data we
don't need to calculate our own matrix.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
4e8e0f817f [effects] Drop resetting Generic Shader from zoom effect
No longer needed as during the rendering the Generic Shader is not
used any more. So the zoom effect doesn't affect it.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
4b96370e67 [effects] Use shader traits API in trackmouse 2016-01-25 14:11:54 +01:00
Martin Gräßlin
a09ede8cc9 [effects] Use shader traits API to render wallpaper in cube effect 2016-01-25 14:11:54 +01:00
Martin Gräßlin
8d9321ca4c [effects] Use shader traits api in screenedge effect 2016-01-25 14:11:54 +01:00
Martin Gräßlin
700adad9b1 [effects] Use shader traits API for MouseMark effect 2016-01-25 14:11:54 +01:00
Martin Gräßlin
2add89e274 [effects] Use shader trait api in MouseClick 2016-01-25 14:11:54 +01:00
Martin Gräßlin
ff9ffe77ba [effects] Use color shader traits in magnifier effect 2016-01-25 14:11:54 +01:00
Martin Gräßlin
6aa19b1587 [effects] Use shader traits in SnapHelper effect
To simplify rendering is moved from postPaintScreen to paintScreen.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
2de0b527d0 [effects] Use shader traits in ShowPaint effect 2016-01-25 14:11:54 +01:00
Martin Gräßlin
b757b7e17d [effects] Switch ShowFPS to ShaderTraits based rendering 2016-01-25 14:11:54 +01:00
Martin Gräßlin
d76f08e359 Render effect frame with shader trait API 2016-01-25 14:11:54 +01:00
Martin Gräßlin
0d1da1c583 Always set mvp on shader in SceneOpenGL2Window::performPaint
Makes it possible to pass in a shader with a custom fragment shader,
but a normal vertex shader which needs the mvp matrix to be set.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
4b11b7b6b8 [kwineffects] Add a generateCustomShader to ShaderManager
This method allows to generate a shader with ShaderTraits but one
part (e.g. vertex and/or fragment) to be replaced by custom shader
code.

Thus it can be used as a replacement for the load*(ShaderType) variants
and allows more effects to transition to shaders using traits.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
3be6ff9f12 [kwineffects] Pass screen projection matrix to WindowPaintData
The screen projection matrix is needed if an effect wants to customize
the modelview projection matrix while rendering a window and keeping
the currently applied screen projection and transformation.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
f284ef814c Pass projection matrix to ScreenPaintData
With this change a new ctor overload is added to ScreenPaintData
which allows passing a projection matrix through the effects. This
allows effects to put up custom shaders with a shared projection matrix
and without having to calculate it themselves.

The projection matrix is a read-only information for the effects. There
is no way to change or overwrite it.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
5657405d32 Use ShaderTraits based shader for paint background
Little bit less usage of old Shader API.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
ad7246e010 Create the new projection matrix at start of frame rendering
For both simple and generic rendering the projection is actually the
same. So let's create it at the start of the frame rendering which
allows us to also pass it through the effects.
2016-01-25 14:11:54 +01:00
Martin Gräßlin
778a7fd1a0 [kwinglutils] Add a ShaderTraits variant to ShaderBinder
Simplifies binding a Shader with traits.
2016-01-25 14:11:54 +01:00
Bhushan Shah
fbd1122a15 Fix the build 2016-01-20 03:35:32 +05:30
Bhushan Shah
bb7674f2b6 Make use of Xinput lib only if we found it
Reviewed by: mgraesslin
2016-01-20 03:05:14 +05:30
Thomas Lübking
1c344c16d9 emit shadeChanged before calculating unshaded size
Otherwise the old (shaded) border sizes will be invoked, causing
a shrinkage of the window

BUG: 357669
FIXED-IN: 5.6
REVIEW: 126671
2016-01-18 22:50:13 +01:00
Thomas Lübking
ed1d32288b move doubleclick logic into press event
alignes w/ systemwide behavior and allows elegant fix of
BUG: 357450
FIXED-IN: 5.6
REVIEW: 126631
2016-01-18 22:34:37 +01:00
Thomas Lübking
95cbd7c1b3 prevent nullptr dereferentiation
BUG: 357032
FIXED-IN: 5.6
REVIEW: 126787
2016-01-18 22:34:26 +01:00
Thomas Lübking
c7aefc6b6b skip SWAP_BEHAVIOR_PRESERVED for supportsBufferAge
pointless and unsupported on latter MESA/DRI3
http://lists.freedesktop.org/archives/mesa-dev/2015-November/100869.html

Thanks to Uriy Zhuravlev for reporting and investigation

BUG: 356992
CCBUG: 356882
FIXED-IN: 5.5.4
REVIEW: 126783
2016-01-18 22:32:10 +01:00
l10n daemon script
e65f7a349f SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2016-01-18 14:17:07 +00:00
Thomas Lübking
e73e331f35 use XCB_CURRENT_TIME for NET::TakeFocusProtocol
The only clients that really seem to rely on it are
Java and they're apparently "broken", resp. extremely
picky on the tiemstamp and probably happily refuse focus
if it's *not* equal to the current server time (ie. anything else
happens at this moment) and overmore feel oblieged to act as WM
by juggling around VDs at all.

BUG: 347153
FIXED-IN: 5.6
REVIEW: 126753
2016-01-15 22:00:10 +01:00
Thomas Lübking
87795eef2a Actually keep the expandedGeometry alive
... until the effects handled the deletion

BUG: 318322
BUG: 320892
BUG: 344359
REVIEW: 126323

FIXED-IN: 5.6
2016-01-15 01:37:51 +01:00
Thomas Lübking
f918bc3367 fix build of rules kcm
REVIEW: 126733
2016-01-14 23:40:44 +01:00