Commit Graph

7728 Commits (2e0385101ac67ce4a601dfc4f521575dfad45e13)

Author SHA1 Message Date
Martin Gräßlin 2e0385101a Less ifdef in paintWindow. CleanerCode++
Using the QMatrix4x4 allows to make everything runtime dependent
and not a compile time switch.
2011-01-30 14:12:04 +01:00
Martin Gräßlin 802dd6b5fe Cache the matrix for cube cap mirroring 2011-01-30 14:12:04 +01:00
Martin Gräßlin fe614119e5 Reflected cube uses QMatrix4x4 2011-01-30 14:12:03 +01:00
Martin Gräßlin 8c4db8f734 Say goodbye to Display Lists in cube.
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.
2011-01-30 14:12:03 +01:00
Martin Gräßlin 6b88cdf36a Cube uses new high-level push/pop/multiply for caps.
For OpenGL 1.x cube caps are now rendered using the capMatrix
instead of using glTranslate/glRotate et al. One source base to
rule all GL versions.
2011-01-30 14:12:03 +01:00
Martin Gräßlin efb82daf30 Adding high-level method for glLoadMatrix 2011-01-30 14:12:03 +01:00
Martin Gräßlin e49345872c Add high-level functions for <push|pop|mult>Matrix.
All methods are no-ops for GLES which allows to use them from
effects without checks for GLES.
2011-01-30 14:12:03 +01:00
Martin Gräßlin db7a072c2b Blending is also useful in legacy mode... 2011-01-30 14:12:03 +01:00
Martin Gräßlin 8d196da880 Render empty areas in multiscreen with VBO. 2011-01-30 14:12:03 +01:00
Martin Gräßlin ea08ae0929 Fix rebasing failure 2011-01-30 14:12:03 +01:00
Martin Gräßlin 460ca2729a Make KWin-GLES branch compile with desktop GL 2011-01-30 14:12:03 +01:00
Martin Gräßlin 7adc29efd7 Remove warnings when building with GLES 2011-01-30 14:12:03 +01:00
Martin Gräßlin 4e36027924 Drop unused bindAttribute Location function. 2011-01-30 14:12:03 +01:00
Martin Gräßlin 2d40f73530 Fix unstyled effect frames 2011-01-30 14:12:02 +01:00
Martin Gräßlin 990001c5d7 Drop GLVertexBuffer::useShader.
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.
2011-01-30 14:12:02 +01:00
Martin Gräßlin 7ca5d4dc6b Fade in/out cube caps during start/stop animation. 2011-01-30 14:12:02 +01:00
Martin Gräßlin ef7fd87d65 Mirror bottom cube cap in shader. 2011-01-30 14:12:02 +01:00
Martin Gräßlin 75a1ee7aa8 CubeCaps back in GLES mode.
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.
2011-01-30 14:12:02 +01:00
Martin Gräßlin e5b6baeda9 Reflection plane in cube effect and GLSL 2011-01-30 14:12:02 +01:00
Martin Gräßlin ad070909a3 Reflection plane in Coverswitch and GLES
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.
2011-01-30 14:12:02 +01:00
Martin Gräßlin a4e4752109 Combine built-in vertex with custom fragment shader
ShaderManager supports a new concept to load just a fragment shader from file
and use a built-in shader for the vertex shader. This allows an effect to use
a custom fragment shader.
2011-01-30 14:12:02 +01:00
Martin Gräßlin 054c8a62a6 Reflected windows in coverswitch
Reflection plane is still missing
On special request I added showing the reflected windows during the animation when the shader is used
2011-01-30 14:12:02 +01:00
Martin Gräßlin ec1ec18260 Bring back some configuration interfaces 2011-01-30 14:12:02 +01:00
Martin Gräßlin 82b8faadab Welcome back Cube effect
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
2011-01-30 14:12:01 +01:00
Martin Gräßlin 9cfdeb1e2d Set always window transformaton to generic shader 2011-01-30 14:12:01 +01:00
Martin Gräßlin 1ba818044f Read a matrix uniform back from shader.
Might require additions to kwinglutils_func in desktop profile
2011-01-30 14:12:01 +01:00
Martin Gräßlin 33dff065fc MouseMark ported to GLES 2011-01-30 14:12:01 +01:00
Martin Gräßlin 18814c66a3 Coverswitch works on GLES.
No multi-screen, no reflections yet
2011-01-30 14:12:01 +01:00
Martin Gräßlin 5dfa8becb5 FlipSwitch ported to GLES.
Multi-screen mode not yet included
2011-01-30 14:12:01 +01:00
Martin Gräßlin cab9154723 Simple vertex shaders use projection matrix and offset 2011-01-30 14:12:01 +01:00
Martin Gräßlin 5f9b75b0c0 All KCMs build again 2011-01-30 14:12:01 +01:00
Martin Gräßlin c24fa39acb CompositingPrefs work with EGL 2011-01-30 14:12:01 +01:00
Martin Gräßlin 5c6e32eaed GLPlatform compiles on EGL 2011-01-30 14:12:01 +01:00
Martin Gräßlin 69044f10c5 GLShader appends the ES specific commands to the shaders 2011-01-30 14:12:01 +01:00
Martin Gräßlin e4b26daef5 And use shared VBO for windows 2011-01-30 14:12:00 +01:00
Martin Gräßlin a7dd31ef00 Use shared VBO for paintBackground 2011-01-30 14:12:00 +01:00
Martin Gräßlin 6cb3b95cc1 ResizeEffect uses shared VBO 2011-01-30 14:12:00 +01:00
Martin Gräßlin 17032c66f8 SnapHelper uses shared VBO 2011-01-30 14:12:00 +01:00
Martin Gräßlin ecc4f83c09 ShowPaint uses the shared buffer 2011-01-30 14:12:00 +01:00
Martin Gräßlin 45f42cdea9 Adding a shared VBO for streaming data. 2011-01-30 14:12:00 +01:00
Martin Gräßlin a352a0e6a8 Remove implemented TODO marker 2011-01-30 14:12:00 +01:00
Martin Gräßlin 910ba17444 VBO uses ShaderManager to get current bound shader 2011-01-30 14:12:00 +01:00
Martin Gräßlin 753df55973 Set Color as a uniform 2011-01-30 14:12:00 +01:00
Martin Gräßlin d2cfeef8ae Scene uses ShaderManager 2011-01-30 14:12:00 +01:00
Martin Gräßlin e2e4fe54ba Effects ported to GLES use ShaderManager 2011-01-30 14:12:00 +01:00
Martin Gräßlin 3c6e7309f2 New ShaderManager
The ShaderManager provides the built-in shaders for scene and effects.
Scene and effects can simply push one of those built-in shaders or a
custom one on a stack ensuring that the previously bound shader will be
rebound when the shader is poped again.

The class will be extended to not only have built-in shaders but also to
load custom shaders and being the only way to bind a shader at all.
2011-01-30 14:11:59 +01:00
Martin Gräßlin 1911a81cd7 Trackmouse ported to GLES 2011-01-30 14:11:59 +01:00
Martin Gräßlin 91f7a70e4f Snaphelper ported to GLES 2011-01-30 14:11:59 +01:00
Martin Gräßlin db4c81993a Zoom effect ported to GLES 2011-01-30 14:11:59 +01:00
Martin Gräßlin 5c22ffb5f2 Resize effect ported to GLES 2011-01-30 14:11:59 +01:00