summaryrefslogtreecommitdiff
path: root/src/render/gl/GLFramebuffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/gl/GLFramebuffer.cpp')
-rw-r--r--src/render/gl/GLFramebuffer.cpp24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/render/gl/GLFramebuffer.cpp b/src/render/gl/GLFramebuffer.cpp
index 59c0c4e3..d8b198c3 100644
--- a/src/render/gl/GLFramebuffer.cpp
+++ b/src/render/gl/GLFramebuffer.cpp
@@ -127,21 +127,17 @@ bool CGLFramebuffer::readPixels(CHLBufferReference buffer, uint32_t offsetX, uin
uint32_t packStride = minStride(PFORMAT, m_size.x);
int glFormat = PFORMAT->glFormat;
- if (glFormat == GL_RGBA)
- glFormat = GL_BGRA_EXT;
-
- if (glFormat != GL_BGRA_EXT && glFormat != GL_RGB) {
- if (PFORMAT->swizzle.has_value()) {
- if (PFORMAT->swizzle == SWIZZLE_RGBA)
- glFormat = GL_RGBA;
- else if (PFORMAT->swizzle == SWIZZLE_BGRA)
- glFormat = GL_BGRA_EXT;
- else {
- LOGM(Log::ERR, "Copied frame via shm might be broken or color flipped");
- glFormat = GL_RGBA;
- }
+ if (PFORMAT->swizzle.has_value()) {
+ if (PFORMAT->swizzle == SWIZZLE_RGBA)
+ glFormat = GL_RGBA;
+ else if (PFORMAT->swizzle == SWIZZLE_BGRA)
+ glFormat = GL_BGRA_EXT;
+ else {
+ LOGM(Log::ERR, "Copied frame via shm might be broken or color flipped");
+ glFormat = GL_RGBA;
}
- }
+ } else if (glFormat == GL_RGBA)
+ glFormat = GL_BGRA_EXT;
// This could be optimized by using a pixel buffer object to make this async,
// but really clients should just use a dma buffer anyways.