First XRender effect which gets ported over. Therefore required bits are
added to CMakeLists.txt.
Port to xcb is luckily rather straight forward. Though the QPixmap usage
needs to be replaced by xcb_pixmap_t together with a XRenderPicture.
In effects it's obvious that compositing is enabled, so specifying the
translucent element is no problem.
In tabbox a context property "compositing" is injected which decides
whether "translucent" or "opaque" elements should be used. Here the
translucent elements are only used if the Blur effect is available - for
this a new Effect::Feature Blur is introduced and in addition it is
tested whether the theme provides the translucent element.
Also the masking is adjusted to ensure that only the shadow is not
blurred.
Reason for this change is that Plasma theme seems not always to pick up
whether compositing is used when used from inside KWin. It does not cover
the Desktop Change OSD which uses PlasmaCore.Dialog and there we cannot
(yet) inject that we use compositing.
Overall I'm quite unhappy with this patch and I do hope we can fix it in
the proper place in the lifetime of 4.10 and revert this patch.
CCBUG: 311995
REVIEW: 108438
This property can be used to check whether a window is currently visible
to the user, that is:
* not minimized
* on the current desktop
* on current activity
This is a common need for various effects.
REVIEW: 108341
Effect used the display size which caused windows being larger than
either width or height not to be captured correctly.
Now it uses the window size for the offscreen texture which also requires
to adjust the modelviewprojection matrix.
As an unrelated change the pointer to GLRenderTarget and GLTexture are
changed to a QScopedPointer and some variables which got moved around
are consted.
BUG: 312851
FIXED-IN: 4.11
REVIEW: 108258