Commit graph

28 commits

Author SHA1 Message Date
Fredrik Höglund
eb9988b788 kwin: Make Scene::m_renderTimer a non-member
It's only used in Scene::paint(), and its value is not valid
between calls.
2011-10-29 17:41:16 +02:00
Martin Gräßlin
e6ed00123a Ensure that always one shader is on the ShaderStack with GL2
This brings some consistency with GLES2 where also one shader
is always on the stack and allows to use the test whether a shader
is bound to see if the GL2 code path is used. This fixes an issue
with cover/flip switch which tested for a bound shader before the
shader was pushed in multi screen setups.

As well it should bring some improvements as the simple screen
shader is not unbound and rebound in each rendered frame.

BUG: 283609
FIXED-IN: 4.7.3
2011-10-15 09:51:45 +02:00
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
e81c68fee8 kwin: fix graphical glitches for the nvidia blob
This is a perliminary fix. Should be fixed properly once we have a real statemachine.
2011-08-25 10:29:23 +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
Martin Gräßlin
f72f465c13 Fix Typos
Krazy--
SVN_SILENT
2011-08-03 08:25:10 +02:00
Martin Gräßlin
c3cf4482a3 Move GLX detection from kwinglobals to CompositingPrefs
Removes the Extension::glxAvailable() from kwinglobals and
implements the functionality in CompositingPrefs, where it
is only needed. There used to be one additional check in
scene_opengl_glx.cpp which is moved into composite.cpp
before the OpenGL Scene is created.

REVIEW: 102002
2011-07-27 18:34:31 +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
Friedrich Kröner
a3962f895d kwin: If GLTexture::load is called, glxpixmap doesn't need to exist
Signed-off-by: Fredrik Höglund <fredrik@kde.org>
2011-05-14 19:07:30 +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
1dd614ee4b Improved detection of OpenGL software emulation
Adding a new method to retrieve whether the OpenGL implementation
uses any kind of software emulation and no software emulation can
provide GLSL support, even if it claims so.

Thanks to Maurel for testing again and again proposed patches.

BUG: 271166
2011-05-06 18:16:38 +02:00
Martin Gräßlin
9a6cf6f136 No OpenGL/GLX compositing on Gallium softpipe
BUG: 271166
FIXED-IN: 4.7.0
2011-04-30 10:30:43 +02:00
Martin Gräßlin
982f041204 KWin requires Mesa 7.10 for OpenGL/GLX
If OpenGL compositing is tried in GLX with a Mesa driver not
at least 7.10 we stop OpenGL compositing.

For OpenGL ES we just assume that all Mesa drivers are fine, so
no requirement.
2011-04-28 22:11:51 +02:00
Martin Gräßlin
77a7bedac8 Delete ShaderManger before destroying GL Context 2011-04-27 14:52:04 +02:00
Martin Gräßlin
fc54bdfe89 Unbind shader before copying pixels to back buffer.
This solves the regression with NVIDIA drivers resulting in a black screen.
Apparently NVIDIA does not support glXCopySubBuffer and the copying of pixels
fails with a shader bound.

So unbinding the shader before copying the pixels and rebinding the shader
afterwards resolves the issue.

This allows to remove the temporary hack to make NVIDIA work, again.
2011-02-06 09:30:04 +01:00
Martin Gräßlin
e1ecce3da7 Readd the hack for Xgl in findTarget.
Apparently glXQueryDrawable does not work in NVIDIA blob for binding
a texture from an icon. This fixes an abort, but the root cause should
be found and fixed properly.
2011-02-05 11:56:48 +01:00
Martin Gräßlin
42f4e65543 Fix a merge regression in Texture::release.
Seems to be a lost change caused by rebasing moved code.
2011-02-05 11:55:10 +01:00
Martin Gräßlin
0a7e48f7aa KWin uses kdelibs coding style. 2011-01-31 20:07:03 +01:00
Fredrik Höglund
8bc99e68c0 Don't specify the texture target explicitly with r300g.
This is reported to cause a performance regression.

FIXED-IN: 4.6.0
BUG: 256654

svn path=/branches/KDE/4.6/kdebase/workspace/; revision=1215519
2011-01-30 15:24:31 +01:00
Martin Gräßlin
2f56415a21 Removing SHM and Fallback OpenGL Compositing modes.
Our primary target is Texture From Pixmap and it is supported
by all important drivers nowadays. If a driver is not able to
support TFP using OpenGL at all is probably no good idea and
XRender is more suited.
2011-01-30 14:24:48 +01:00
Martin Gräßlin
1b70279664 Removing Xgl support from KWin.
Xgl has been removed from the X tree in 2008. It does not make sense
to still support it in KWin.
2011-01-30 14:24:48 +01:00
Martin Gräßlin
4c8c3060bf Merge together paintBackground and paintGenericScreen 2011-01-30 14:12:04 +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
d2cfeef8ae Scene uses ShaderManager 2011-01-30 14:12:00 +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
6bad079628 Fix typo 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
537b06a9ee Move glx and egl code into own files 2011-01-30 14:11:57 +01:00