Commit Graph

14061 Commits (bd5f6420978a882d2b532faaee49512d98c300a2)

Author SHA1 Message Date
Martin Gräßlin bd5f642097 [effects] Check for LimitedNPOT
Effects which require mipmaps need to check for LimitedNPOT and
disable the functionality if only limited NPOT is available.

Ideally the effects could also check whether the texture they
operate on is a power of two, but that's a little overkill for
the rather uncommon setup.

REVIEW: 126966
2016-02-02 12:37:14 +01:00
Martin Gräßlin ed3f55b953 [wayland] Fix heap-use-after-free in idle time plugin
We need to also destroy all idle objects when we tear down the
internal client connection. Otherwise the cleanup tries to free
the object after our Wayland connection is already destroyed.
2016-02-02 12:00:12 +01:00
Thomas Lübking db5a798952 depend glsl on TextureNPOT, not LimitedNPOT
The idea was to block shaders that operate on
Texture2D while Texture2DRectangle was use, but
that's indeed controlled by TextureNPOT while
LimitedNPOT indicates Texture2D but without support
for mipmapping and exotic clamping

FIXED-IN: 5.6
REVIEW: 126959
2016-02-02 11:06:37 +01:00
Thomas Lübking 176f492085 export EGL_PLATFORM as x11 in eglonxbackend
required because the early initEGL to detect buffer_age support
can cause usage of the wrong driver in eglGetDisplay()

BUG: 358750
FIXED-IN: 5.6
REVIEW: 126958
2016-02-02 11:06:08 +01:00
Martin Gräßlin b905fa0f68 [autotests] Adjust lockscreen test to improvements in KSld
On the CI system our tests failed due to the greeter failing to start
due to OpenGL problems. This was because we waited for a window to show
which never happened. Thus the test failed.

This change makes use of the new lockStateChanged signal to determine
when the screen gets locked/unlocked.

It's still possible that the test fails as I'm not able to reproduce
the failure condition on the CI system.
2016-02-02 10:22:37 +01:00
Martin Gräßlin 5e782ac93e Set focusedPointerSurface to null when screen is locked and no greeter window
We want to get leave events on the previously focused surface when
the screen is locked.
2016-02-02 10:21:42 +01:00
Martin Gräßlin b5cbca3617 Also consider the AcquiringLock state as a locked screen
KSld goes to state AcquiringLock when starting the greeter process.
During this state it expects the input to be grabbed. So from KWin
perspective this means that the screen is locked and KWin should
filter out input events.
2016-02-02 10:19:46 +01:00
Kevin Funk 8ea4f4dae7 Port to CMake AUTOMOC
Summary: Run convert-to-cmake-automoc.pl over all .cpp files

Differential Revision: https://phabricator.kde.org/D882
2016-02-01 21:05:36 +01:00
Martin Gräßlin 803d499287 [autotest] Add test case for pointer buttons on locked screen
Extends the lock screen tests by verifying that pointer button
press/release events will be intercepted by the lock screen.
2016-02-01 17:57:38 +01:00
Martin Gräßlin 19e25a73c0 Fix incorrect feature_info description for prctl-dumpable
Copy'n'paste error.
2016-02-01 16:08:55 +01:00
Martin Gräßlin 7de9a402df [autotest] Add a test for locking the screen
First test case is to ensure that pointer motion events trigger a
leave event on the surface the pointer is on.

The test case shows errors in the input handling.

More tests need to be added.
2016-02-01 15:10:00 +01:00
Martin Gräßlin 1790168fb3 [autotests] Test quick tiling when moving a window with the Pointer
Just like the keyboard case. Too much code duplication.
2016-02-01 09:28:06 +01:00
Martin Gräßlin 22bd8badbf [effects] Add a simplified fullscreen blur
If a window is fullscreen and wants fullscreen blur behind it, we
use the blur from logout effect. This is mostly intended for the
Application Dashboard which requires a fullscreen blur. The generic
blur effect is not designed for such usage and is rather costly.

This simplified blur just needs framebuffer blit and midmaps. This
makes it rather cheap in usage and also doesn't need a cached texture.

REVIEW: 126906
2016-02-01 08:43:46 +01:00
Martin Gräßlin 1fb0c31bb4 [kwineffects] Expose fullScreen property in EffectWindow
Also copied to Deleted.
2016-02-01 08:43:46 +01:00
Martin Gräßlin 5f15528428 [effects] Remove clip plane from Cube effect
It broke the rendering of the reflection.
2016-02-01 08:43:25 +01:00
Martin Gräßlin 613d76f2df [effects] Combine all shaders in resources
One resource is used for shader version 1.10 and one for version 1.40.

The ideas behind this change is to remove the locating of the shader
sources and also to fix that user provided shaders could be loaded
instead of the original ones (possible attack vector on Wayland).

To simplify the ShaderManager provides a new method call to load the
shader from the resource. This means the effects don't need to
duplicate the check for the shader version any more and also don't
need to duplicate the file reading functionality.

REVIEW: 126905
2016-02-01 08:42:30 +01:00
Martin Gräßlin fbf14306d7 Set Workspace::m_compositor to null when Compositor gets destroyed
Fixes regression from 1998d5ac1a.

BUG: 358722
REVIEW: 126925
2016-02-01 08:31:13 +01:00
l10n daemon script bd3083e81f 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-30 09:40:55 +00:00
Martin Gräßlin 757523a324 Use kwinApp()->config() instead of KSharedConfig::openConfig()
That way all over kwin we can inject a custom config in the autotests.
2016-01-29 11:24:18 +01:00
Martin Gräßlin a12fb5ed03 [autotest] Extend QuickTilingTest for keyboard window move
Trigger quick tiling by moving the window. For moving the window only
keyboard keys are used.

The test experienced some problems with the Outline triggering crashes.
To work around them the test disables the Outline by specifying an
invalid configuration.
2016-01-29 09:54:07 +01:00
Martin Gräßlin bdb423da3d Only send key press events to the moving client
The invoked method is called keyPressEvent, thus it should not get
key release events. Before each key event was handled twice.
2016-01-29 09:52:01 +01:00
Martin Gräßlin 2a935c523f Make QmlPath in Outline configurable
Fixes a TODO in the code and has the slight advantage that we can
disable the Outline from integration tests by pointing to a not
existing file.
2016-01-29 09:50:52 +01:00
Martin Gräßlin 1f7daa934d KWin::Application holdes a KSharedConfigPtr with the config
This allows the integration tests to provide their own configuration
as they need it. Setting the configuration should be done before
invoking start()
2016-01-29 09:48:02 +01:00
Aleix Pol 2636aad5c3 Let KDE*CompilerSettings change the policies in the project
As suggested in ECM documentation.
2016-01-28 15:08:23 +01:00
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