diff options
author | ST-Ericsson <void@stericsson.com> | 2011-12-12 16:14:21 +0100 |
---|---|---|
committer | Patrik Ryd <patrik.ryd@linaro.org> | 2011-12-13 16:12:29 +0100 |
commit | d6726f53aaf60c9b4810352cd1872a3ede22f0b7 (patch) | |
tree | e08924272c284d9c166da7bd477a5aabe58497ae | |
parent | fa196c4ba82fb1d1dd426fb4ff19bc8ebd2d85fa (diff) | |
download | base-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.cpp | 8 |
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; } |