From d6726f53aaf60c9b4810352cd1872a3ede22f0b7 Mon Sep 17 00:00:00 2001 From: ST-Ericsson Date: Mon, 12 Dec 2011 16:14:21 +0100 Subject: SurfaceFlinger: Change bitdepth of FBO texture 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 --- services/surfaceflinger/SurfaceFlinger.cpp | 8 ++++---- 1 file 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; } -- cgit v1.2.3