Commit graph

13 commits

Author SHA1 Message Date
Martin Gräßlin
7983acea88 [effects] Support GLES 3 in Blur and BackgroundContrast
Fix code generation in case OpenGL ES 3 or later is used.

BUG: 324478
FIXED-IN: 5.5
REVIEW: 126003
2015-11-09 16:22:32 +01:00
Martin Gräßlin
78ac6aaf13 [effects] Runtime checks for GLES instead of compile time checks 2015-11-03 09:29:31 +01:00
Martin Gräßlin
8919cd5f54 [effects] Simplify supported check in blur and backgroundcontrast
GLSL is always required nowadays on GL compositor.

REVIEW: 118642
2014-06-11 14:50:01 +02:00
Martin Gräßlin
c7d986c7fe [kwin] Remove the legacy OpenGL 1 compositing backend
KWin already has a de facto OpenGL 2 dependency through QML. Combined
with the fact that the OpenGL 1 backend is basically unmaintained and
also unused, it's better to remove it for the new major release.

This change includes:
 * Removal of cmake option KWIN_BUILD_OPENGL_1_COMPOSITING
 * Removal of KWIN_HAVE_OPENGL_1 compile option and all code
   ifdef'ed with it (partially removal of if-else constructs)
 * Removal of CompositingType::OpenGL1Compositing (flags are kept
   as a core flag should get introduced)
 * Driver recommendation for OpenGL1Compositing changed to XRender
   (should be evaluated whether the drivers can provide GL2)
 * Removal of configuration option "GLLegacy"
 * Removal of fooMatrix function in kwinglutils
 * Removal of ARBBlurShader
 * Removal of legacy code path in GLVertexBuffer
 * Removal of GLShaderManager::disable
 * if-blocks with ShaderManager::instance()->isValid() removed

REVIEW: 116042
2014-03-10 08:59:11 +01:00
Martin Gräßlin
3f0ff9b8d5 Migrate effects from displayWidth()/displayHeight() to virtualScreenSize()/virtualScreenGeometry()
Rational behind this change is that displayWidth and displayHeight are
X specific API calls in kwinglobals. For the future it's easier to only
rely on functionality which goes through the EffectsHandler API which
allows easier adjustments in KWin core.

displayWidth() and displayHeight() are only used to get the size or the
complete rect of all screens. This is also provided by:

effects->virtualScreenGeometry() or
effects->virtualScreenSize()

REVIEW: 116021
2014-03-07 08:01:44 +01:00
Martin Gräßlin
c954a3151c [kwin] Remove another useless kdebug include 2014-02-03 11:40:16 +01:00
Martin Gräßlin
daf0772c35 [kwin/backgroundcontrast] Fix shader on GLSL 1.10 code path
We need to use the varying_in/out variables, the code was a little
bit too modern.

At the same time remove the identity matrix and replace it by mat4(1.0).

Note: the shader should probably go into glsl files as they are not
really generated.
2014-01-23 15:44:12 +01:00
Marco Martin
b7ded05596 fade out the effect if the window opacity is < 1 2014-01-23 14:47:49 +01:00
Marco Martin
210f7d3eff reintroduce prepaintscreen
* work also without blur enabled
* try to pass only the 3 color parameters
2014-01-23 14:47:01 +01:00
Marco Martin
dabafc4988 simplify: remove prepaintwindow/screen
* update effect name
* remove unused variable
2014-01-23 14:46:13 +01:00
Marco Martin
4f2d2e469d no subclass for the shader
* get rid of the strength property
* this effect doesn't have config
2014-01-23 14:45:40 +01:00
Marco Martin
4036f179fc one single pass, get rid of cached version
* this effect is way cheaper than blur, don't cache it
* use its own atom
* also pass the matrix in the x property
* remove remnants of the cache
* do just a single pass
* get rid of config ui remnants
2014-01-23 14:44:49 +01:00
Marco Martin
3a4eb9a093 stub for the background contrast effect
* a copy of the blur shader to become a copy of the background contrast effect
* contrastshader actually doing the light modification
* don't expand/shrink the area
2014-01-23 14:44:00 +01:00