The usefulness of the snow effect is doubtable and it is rather
difficult to port the effect to the new rendering architecture
introduced with GLES. It is probably easier to rewrite the complete
effect from scratch, therefore it is removed for now.
I might consider readding it for 4.7.
This kind of "fixes" snow related bug reports.
BUG: 259362
BUG: 254498
FIXED-IN: 4.7.0
The effect has been known to cause some problems for quite some time
and is not really useful. Therfore dropping the effect.
See discussion on kwin mailinglist:
http://lists.kde.org/?l=kwin&m=129597766829618&w=2
It now uses a GLShader for GLSL shaders and pushes it using the
ShaderManager.
It does not work with the nouveau driver plus GLES, but it works
with fglrx + desktop GL 2.x, so I assume it is a driver problem here.
It uses a generic vertex shader and because of that it needs to
mark all windows which are inverted as transformed.
There is currently a conflict with Lanczos (or thumbnails) and with
the desktop in cube effect.
Rotation is now only handled by the QMatrix4x4 m_rotationMatrix,
so no more need for display lists. Resulting in a cleaner code without
differences between OpenGL 1.x and 2.x/GLES.
The vertex buffer implementation uses the shader manager to decide
whether core painting should be used or not. Shader manager is only
used by shaders using vertex attributes instead of gl_Vertex etc.
This includes quite some refactoring. For the cube cap a VBO is used
instead of glLists and all the required transformations are moved into
paintCap() which makes paintScreen more clean.
Currently the mirroring of bottom texture is still missing and cylinder
and sphere caps are not yet ported to using VBO.
I wouldn't be surprised if it is broken for legacy GL atm.
CoverSwitch uses new concept of combining a custom fragment shader with the
built-in generic vertex shader. This shader is used to render the reflection
plane on top of the reflected windows.
The fragment shader uses two uniform colors for front and back and interpolates
between them based on the texcoords (which are not used for texture lookup).
The reflection plane vertices could be buffered.
Currently working:
* cube slide
* basic cube
* rotations
* reflections
Not working:
* Cube Inside effects
* Reflection plane (needs to be done in a shader)
* cube caps
* sphere/cylinder
* filled in areas in multi desktop