Summary:
The screenshot methods to blit the screen so far did not capture the
cursor image. But sometimes it is useful to also capture the cursor
image.
This change extends the exported methods to take an optional bool
argument whether to capture the screen. The default is not changed and
still not captures the cursor.
Reviewers: #kwin, #plasma_on_wayland
Subscribers: plasma-devel, kwin
Tags: #plasma_on_wayland, #kwin
Differential Revision: https://phabricator.kde.org/D3118
Summary:
Adjusts the screenshot effect to mutliple output rendering. In that case
the blit from framebuffer can only get one output. Thus the effect needs
to blit every output and combine the rendering result.
Reviewers: #kwin, #plasma_on_wayland
Subscribers: plasma-devel, kwin
Tags: #plasma_on_wayland, #kwin
Differential Revision: https://phabricator.kde.org/D3059
Summary:
For windows the screenshot effect already delayed the rendering into the
next cycle. But for the fullscreen variants which save to a file the
Screenshot effect did try to take the shot directly.
This can be problematic as e.g. the OpenGL context might not be bound at
all. Also this makes it impossible to screenshot multiple screens
together in the Wayland case.
This change delays the DBus replies, schedules the geometry and takes
the screenshot in the next rendering pass. It does not fix the
multiscreen wayland problem yet.
Reviewers: #kwin
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D3052
This method replaces the X-KDE-ORDERING property in the Effect's desktop
files. This change is a preparation step for integrating the new Effect
Loader which doesn't read the ordering information. Thus it needs to be
provided by the Effect itself so that the EffectsHandler can properly
insert it into the chain.
Also for the built-in Effects on the long run it doesn't make much sense
to install the desktop files. And binary plugin effects will migrate to
json metadata which also doesn't have the KService::Ptr. Thus overall it
simplifies to read this information directly from the Effect.
This includes:
* getting cursor image through xcb_xfixes
* using xcb_image_get for reading screen content in xrender case
* using xcb_put_image to upload the generated screenshot into shared xpix
Overall this means that QPixmap as an X Pixmap wrapper is no longer used.
The conversion from xcb_image_t to QImage still needs some code for not
matching byte order. I'm a little bit unsure about adding the code as I
would not be able to test it.
REVIEW: 109076
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
Each effect is able to declare itself as currently being active,
that is transforming windows or painting or screen or doing anything
during the current rendered frame.
This change eliminates the hottest path inside KWin identified by
callgrind.
REVIEW: 102449
This adds a DBus slot to capture a window and the pixmap handle
is passed back via a DBus signal.
Previous code using a shortcut and saving to filesystem is dropped
completely in favor for ksnapshot.
See http://reviewboard.kde.org/r/4814/
svn path=/trunk/KDE/kdebase/workspace/; revision=1175353
Saves an image of the active window into the home directory when triggered.
It uses an OpenGL FBO and by that can include the alpha channel and the decoration shadows.
svn path=/trunk/KDE/kdebase/workspace/; revision=1157682