Copies the shadow parts into one image and creates a GLTexture
from the image, so that we can render the complete shadow with
just one texture and one painting pass.
Should remove most of the overhead involved when rendering the new Shadows.
As a side effect this should fix missing shadows with non-NPOT GPUs and
a rendering glitch reported with NVIDIA.
REVIEW: 101742
When using graphicssystem native the texture may be using
GL_TEXTURE_RECTANGLE_ARB instead of GL_TEXTURE_2D. This
needs to be honoured in order to make KWin work reliable
with e.g. R300 chipsets.
BUG: 274607
CCBUG: 276622
FIXED-IN: 4.7.0
The adjusted code for generating texture coordinates did not
take care of GL_TEXTURE_RECTANGLE_ARB textures causing the
generation of wrong texcoords.
BUG: 276622
FIXED-IN: 4.7.0
Some applications like kwin suffer from heap fragmentation
when using the raster graphicssystem. This patch provides a function
that forces glibc to shrink the heap more often.
Now 5*pagesize(=20kB on a typical x86 system) of unused space at the
end of the heap are enough to force free()
to release this space. The default threshold is 128kB which is too much
for an average kworkspace application.
REVIEW: 101385
Removes the last bits of the self-check at compositing startup.
It seems like they were only added to XRender because they were
in OpenGL and there they are not available for quite some time.
Also removes the now obsolete disable functionality checks from UI.
REVIEW: 101756
Since the funtionality of TopMenu did no longer work in KDE4 this feature was
removed from Workspace. Every reference to it was removed as well as commentaries
and documentation.
REVIEW: 101485
Without Compositing we do not really need the PaintRedirector,
it only adds overhead. This reverts the behavior to how it was before
the PaintRedirector was introduced by just not redirecting the paint
in the event filter when compositing is not active. This should have
the lowest impact on the existing source base.
The change breaks at least oxygen window decoration when compositing
is not active as the decoration is no longer double buffered. But
as written this is exactly the behavior as used before 4.3. Given
the push today there should be enough time for all affected decos
to adjust to the change.
REVIEW: 101413
Drawbound was nowadays only used when compositing is disabled.
For the composited case, the drawbound was replaced by the resize
effect and in fact we should always just use the resize effect.
REVIEW: 101411
Mouse Emulation is provided in a better way by KAccess. This provides
a global systemsettings switch to enable mouse emulation instead of
a shortcut and Xkb to enable mouse control with keyboard instead of
sending out fake mouse events.
So no need for duplicated functionality in KWin.
REVIEW: 101406
The uniforms textureWidth and textureHeight were only needed for
normal windows. For everything else it was just 1.0/1.0, that is
normalized.
The makeArrays method is changed to produce normalized texcoords
obsoleting the need for these uniforms. So two uniforms less, one
calculation in vertex shaders less and many many lines of code
removed.
At the same time makeArrays is also adjusted to take care of
yInverted of the texture, which is needed as we no longer can use
the enableUnnormalizedTexCoords which did the yInverted transformation.
REVIEW: 101646
While closing a window it might happen that we emit the windowOpacityChanged
signal although we dont have an EffectWindow.
Related to commit 1ce3f9fc53aa93a7536d43d0c936266f0ae21b65
by checking the graphicssystem at startup
also avoid pixmap and memory leaking on the xrender backend, validate some pointers
on deletion in SceneOpnGL and avoid attempts to render ::isNull pixmaps