Commit Graph

36 Commits (e8a038d66f4269e1614cbf4647bb4a3eaea1f933)

Author SHA1 Message Date
Martin Gräßlin 212908ee88 Refactoring of KWin::Options: getter methods instead of public variables 2012-02-27 19:31:58 +01:00
Philipp Knechtges f5b5e5c8d0 kwin: cleaning up the GLTexture API 2012-01-31 23:10:58 +01:00
Philipp Knechtges 59c8ce32c1 kwin: dropping LOD bias 2012-01-31 23:10:57 +01:00
Philipp Knechtges 87bcabdf99 kwin: improving the texture update handling
This patch changes the behavior of strictly bound textures such that
they are only updated if the corresponding window has been damaged.
Additionally GLTexture now keeps track of the current filter and
wrapmode setting.

REVIEW: 103655
2012-01-31 23:09:58 +01:00
Montel Laurent e41182af18 Fix compile with strict order 2012-01-28 13:23:44 +01:00
Thomas Lübking d845b60c6c change geometry w/o compositor restart
This possibly fails on some (older?) ati chip/driver combos
-> Waiting for bugreports

REVIEW: 103246
2012-01-24 22:27:15 +01:00
Philipp Knechtges dbc48c91f9 kwin: don't wait for vsync when nothing has been painted 2012-01-12 21:01:56 +01:00
Martin Gräßlin 6e445fb75c Less unused parameter/variable warnings in kwin
SVN_SILENT
2011-12-31 15:08:54 +01:00
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