summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorST-Ericsson <void@stericsson.com>2011-12-12 16:14:21 +0100
committerPatrik Ryd <patrik.ryd@linaro.org>2011-12-13 16:12:29 +0100
commitd6726f53aaf60c9b4810352cd1872a3ede22f0b7 (patch)
treee08924272c284d9c166da7bd477a5aabe58497ae
parentfa196c4ba82fb1d1dd426fb4ff19bc8ebd2d85fa (diff)
downloadbase-linaro_android_4.0.1_snowball.tar.gz
SurfaceFlinger: Change bitdepth of FBO texturelinaro_android_4.0.1_snowball
SurfaceFlinger::renderScreenToTextureLocked() is used during effects such as electronBeamOffAnimation. Calling this function resulted in a GL_INVALID_FRAMEBUFFER_OPERATION_OES on platforms that don't support 24bit RGB surfaces as render tagets. The format of the texture has been changed to 32bit RGBA. Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index ba8f6308b1a0..082ea7b70515 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1847,14 +1847,14 @@ status_t SurfaceFlinger::renderScreenToTextureLocked(DisplayID dpy,
GLuint name, tname;
glGenTextures(1, &tname);
glBindTexture(GL_TEXTURE_2D, tname);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
- hw_w, hw_h, 0, GL_RGB, GL_UNSIGNED_BYTE, 0);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ hw_w, hw_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
if (glGetError() != GL_NO_ERROR) {
while ( glGetError() != GL_NO_ERROR ) ;
GLint tw = (2 << (31 - clz(hw_w)));
GLint th = (2 << (31 - clz(hw_h)));
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
- tw, th, 0, GL_RGB, GL_UNSIGNED_BYTE, 0);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
+ tw, th, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
u = GLfloat(hw_w) / tw;
v = GLfloat(hw_h) / th;
}