effects/screenshot: fix the screenshot on GLES
We want to multiply the width/height by scale weather or not we are using GLES or not, otherwise this will only provide part of screen when used with e.g fullscreen screenshot.
This commit is contained in:
parent
00ce98b7a2
commit
5e6c81eea0
1 changed files with 7 additions and 10 deletions
|
@ -777,15 +777,12 @@ QImage ScreenShotEffect::blitScreenshot(const QRect &geometry, const qreal scale
|
|||
QImage img;
|
||||
if (effects->isOpenGLCompositing())
|
||||
{
|
||||
int width = geometry.width();
|
||||
int height = geometry.height();
|
||||
const QSize nativeSize = geometry.size() * scale;
|
||||
|
||||
if (GLRenderTarget::blitSupported() && !GLPlatform::instance()->isGLES()) {
|
||||
|
||||
width = static_cast<int>(width * scale);
|
||||
height = static_cast<int>(height * scale);
|
||||
|
||||
img = QImage(width, height, QImage::Format_ARGB32);
|
||||
GLTexture tex(GL_RGBA8, width, height);
|
||||
img = QImage(nativeSize.width(), nativeSize.height(), QImage::Format_ARGB32);
|
||||
GLTexture tex(GL_RGBA8, nativeSize.width(), nativeSize.height());
|
||||
GLRenderTarget target(tex);
|
||||
target.blitFromFramebuffer(geometry);
|
||||
// copy content from framebuffer into image
|
||||
|
@ -793,10 +790,10 @@ QImage ScreenShotEffect::blitScreenshot(const QRect &geometry, const qreal scale
|
|||
glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, static_cast<GLvoid*>(img.bits()));
|
||||
tex.unbind();
|
||||
} else {
|
||||
img = QImage(width, height, QImage::Format_ARGB32);
|
||||
glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, (GLvoid*)img.bits());
|
||||
img = QImage(nativeSize.width(), nativeSize.height(), QImage::Format_ARGB32);
|
||||
glReadPixels(0, 0, nativeSize.width(), nativeSize.height(), GL_RGBA, GL_UNSIGNED_BYTE, (GLvoid*)img.bits());
|
||||
}
|
||||
ScreenShotEffect::convertFromGLImage(img, width, height);
|
||||
ScreenShotEffect::convertFromGLImage(img, nativeSize.width(), nativeSize.height());
|
||||
}
|
||||
|
||||
#ifdef KWIN_HAVE_XRENDER_COMPOSITING
|
||||
|
|
Loading…
Reference in a new issue