Commit graph

28 commits

Author SHA1 Message Date
Martin Gräßlin
6e15c0c208 Change timers to QElapsedTimers
Instead of calculating the elapsed time from epoch clock, using
a QElapsedTimer as well as reusing the timer object instead of
creating a new one in the scene each frame.

REVIEW: 102473
2011-08-29 06:48:44 +02:00
Philipp Knechtges
4f50a8df3c kwin: Implement "use by value" and implicit sharing for GLTexture.
Additionally:
- hide the GLTexture implementation using dpointers
- drop the unused function SceneOpenGL::Texture::optimizeBindDamage()
- Texture::load now loads a new texture and does not update the existing one

REVIEW: 101999
2011-08-14 17:08:54 +02:00
Arthur Arlt
d8072be54d Move OverlayWindow from Workspace to its own class
All the functionality of Overlay Window is moved to its own class
OverlayWindow. It is created and owned by class Scene, since almost
all function calls are called from this class.

REVIEW: 101866
2011-07-09 19:08:48 +02:00
Martin Gräßlin
42aac88f1b It helps to also set the texture size in GLES
Up to now we have not used it in OpenGL ES, but now we do and
rendering is funny if the size is not set.
2011-07-02 15:31:36 +02:00
Martin Gräßlin
234ec644d2 KWin supports graphicssystem Raster
With raster a QPixmap is no longer a XPixmap which fails all code
which assumes that an QPixmap is an XPixmap. Depending on were in
the codebase we either convert such pixmaps to images (OpenGL) or
create a XPixmap and use QPixmap::fromX11Pixmap to get a "real"
pixmap.

It is possible that there are more code pathes were we would need
a XPixmap. Currently tested is basic functionality of no-compositing,
XRender compositing, OpenGl/GLX and OpenGL ES/EGL compositing.

For OpenGL compositing raster might result in performance improvements,
for XRender it is possible that there are regressions when using raster.
By default KWin uses whatever is the default of the system, so we just
no longer enforce native.

Of course it is a bad idea to use graphicssystem OpenGL. As that
is broken anyways in Qt, we do not check for it.

Many thanks to Philipp Knechtges for bringing up the issue, convincing
me that we need it and providing most of the patch.

REVIEW: 101132
CCMAIL: Philipp.Knechtges@rwth-aachen.de
2011-05-12 18:52:38 +02:00
Martin Gräßlin
264fcfa49f Remove selfcheck code from OpenGL
Execution was ifdefed, if we want it again we have a VCS.
2011-05-12 17:59:57 +02:00
Martin Gräßlin
77a7bedac8 Delete ShaderManger before destroying GL Context 2011-04-27 14:52:04 +02:00
Martin Gräßlin
2133d56fb6 Call setupOverlay also from GLES backend
This fixes my issue that mouse events are eaten on R600G.
I am a little bit surprised that it worked at all with nouveau.
Now my issues are fixed and finally, finally my primary system uses
the free driver stack (though only GLES).
2011-04-23 16:27:23 +02:00
Martin Gräßlin
99c3999881 Destroy overlay window on shutting down GLES compositing 2011-04-23 16:15:08 +02:00
Jammy Zhou
9a8d5c88ae Fix GL error when do texture from pixmap
This problem happens on Freescale imx51 ARM platform

CCMAIL: patches@linaro.org
2011-03-11 09:04:01 +08:00
Martin Gräßlin
6162f38b32 Sync before painting in EGL backend
This should help preventing flickering/tearing with various
ES drivers.
Thanks to Jammy Zhou for pointing out this problem and providing
the patch.
CCMAIL: jammy.zhou@linaro.org
2011-02-12 14:52:28 +01:00
Martin Gräßlin
0a7e48f7aa KWin uses kdelibs coding style. 2011-01-31 20:07:03 +01:00
Martin Gräßlin
4c8c3060bf Merge together paintBackground and paintGenericScreen 2011-01-30 14:12:04 +01:00
Martin Gräßlin
7adc29efd7 Remove warnings when building with GLES 2011-01-30 14:12:03 +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
cab9154723 Simple vertex shaders use projection matrix and offset 2011-01-30 14:12:01 +01:00
Martin Gräßlin
a7dd31ef00 Use shared VBO for paintBackground 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
70fefbbbae Adding an initEGL method and check for required extension 2011-01-30 14:11:59 +01:00
Martin Gräßlin
e5932ff214 Make it compile again after rebasing on current trunk 2011-01-30 14:11:58 +01:00
Martin Gräßlin
c20adefb82 Less warnings please 2011-01-30 14:11:58 +01:00
Martin Gräßlin
2703a23abf Use color shader to render the background 2011-01-30 14:11:58 +01:00
Martin Gräßlin
ae95ab0c43 Adding color to VBO.
A color can be specified to render the geometry of the VBO.
For legacy painting glColor is used, for shader a uniform is set.
In order to allow rendering without texcoords, it is possible to pass
a null pointer as texcoords.
Shader added to scene which just renders a colored geometry without texturing.
2011-01-30 14:11:58 +01:00
Martin Gräßlin
9b37fc580d Support screen transformations in ES.
paintGenericScreen should be merged back to scene_opengl
2011-01-30 14:11:58 +01:00
Martin Gräßlin
eb7d06d22f Adding a generic scene shader able to handle transformation
Currently only window transformations are supported.
2011-01-30 14:11:57 +01:00
Martin Gräßlin
a2e214d326 Enable PaintClipper on core VBO again.
Need to disable clearing screen on EGL for that.
With Mesa swapping buffer is sufficient, though a better solution will be required for other drivers
2011-01-30 14:11:57 +01:00
Martin Gräßlin
5804417acc And here comes the working OpenGL ES backend 2011-01-30 14:11:57 +01:00
Martin Gräßlin
537b06a9ee Move glx and egl code into own files 2011-01-30 14:11:57 +01:00