[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 04/11] opengl: Do not convert format with glTexImage2D on OpenGL E
From: |
Gerd Hoffmann |
Subject: |
[PULL 04/11] opengl: Do not convert format with glTexImage2D on OpenGL ES |
Date: |
Tue, 16 Mar 2021 06:38:06 +0100 |
From: Akihiko Odaki <akihiko.odaki@gmail.com>
OpenGL ES does not support conversion from the given data format
to the internal format with glTexImage2D.
Use the given data format as the internal format, and ignore
the given alpha channels with GL_TEXTURE_SWIZZLE_A in case the
format contains alpha channels.
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
Message-Id: <20210219094803.90860-1-akihiko.odaki@gmail.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
ui/console-gl.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/ui/console-gl.c b/ui/console-gl.c
index 0a6478161fed..7c9894a51d99 100644
--- a/ui/console-gl.c
+++ b/ui/console-gl.c
@@ -73,11 +73,20 @@ void surface_gl_create_texture(QemuGLShader *gls,
glBindTexture(GL_TEXTURE_2D, surface->texture);
glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT,
surface_stride(surface) / surface_bytes_per_pixel(surface));
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
- surface_width(surface),
- surface_height(surface),
- 0, surface->glformat, surface->gltype,
- surface_data(surface));
+ if (epoxy_is_desktop_gl()) {
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
+ surface_width(surface),
+ surface_height(surface),
+ 0, surface->glformat, surface->gltype,
+ surface_data(surface));
+ } else {
+ glTexImage2D(GL_TEXTURE_2D, 0, surface->glformat,
+ surface_width(surface),
+ surface_height(surface),
+ 0, surface->glformat, surface->gltype,
+ surface_data(surface));
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, GL_ONE);
+ }
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
--
2.29.2
- [PULL 00/11] Ui 20210316 patches, Gerd Hoffmann, 2021/03/16
- [PULL 04/11] opengl: Do not convert format with glTexImage2D on OpenGL ES,
Gerd Hoffmann <=
- [PULL 03/11] ui: deprecate "password" option for SPICE server, Gerd Hoffmann, 2021/03/16
- [PULL 02/11] ui: introduce "password-secret" option for SPICE server, Gerd Hoffmann, 2021/03/16
- [PULL 07/11] ui: avoid sending framebuffer updates outside client desktop bounds, Gerd Hoffmann, 2021/03/16
- [PULL 08/11] ui: use client width/height in WMVi message, Gerd Hoffmann, 2021/03/16
- [PULL 05/11] ui/cocoa: Do not exit immediately after shutdown, Gerd Hoffmann, 2021/03/16
- [PULL 01/11] ui: introduce "password-secret" option for VNC servers, Gerd Hoffmann, 2021/03/16
- [PULL 10/11] ui: fold qemu_alloc_display in only caller, Gerd Hoffmann, 2021/03/16
- [PULL 09/11] ui: honour the actual guest display dimensions without rounding, Gerd Hoffmann, 2021/03/16
- [PULL 06/11] ui: add more trace points for VNC client/server messages, Gerd Hoffmann, 2021/03/16
- [PULL 11/11] ui/cocoa: Comment about modifier key input quirks, Gerd Hoffmann, 2021/03/16