Merge change 24977 into eclair

* changes:
  add support for RGBX_8888 surfaces in SurfaceFlinger
This commit is contained in:
Android (Google) Code Review 2009-09-14 21:11:56 -04:00
commit b44070812a
3 changed files with 10 additions and 2 deletions

View File

@ -106,6 +106,9 @@ status_t Buffer::initSize(uint32_t w, uint32_t h, PixelFormat format,
// the requested flags should be honored.
usage = reqUsage | BufferAllocator::USAGE_HW_TEXTURE;
}
if (format == PIXEL_FORMAT_RGBX_8888)
format = PIXEL_FORMAT_RGBA_8888;
err = allocator.alloc(w, h, format, usage, &handle, &stride);
if (err == NO_ERROR) {

View File

@ -176,6 +176,9 @@ void Layer::reloadTexture(const Region& dirty)
// this failed, for instance, because we don't support
// NPOT.
// FIXME: do something!
LOGD("layer=%p, glEGLImageTargetTexture2DOES(%d) "
"failed err=0x%04x",
this, mTextures[index].image, error);
mFlags &= ~DisplayHardware::DIRECT_TEXTURE;
} else {
// Everything went okay!

View File

@ -590,7 +590,8 @@ regular:
glTexImage2D(GL_TEXTURE_2D, 0,
GL_RGBA, texture_w, texture_h, 0,
GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, data);
} else if (t.format == GGL_PIXEL_FORMAT_RGBA_8888) {
} else if (t.format == GGL_PIXEL_FORMAT_RGBA_8888 ||
t.format == GGL_PIXEL_FORMAT_RGBX_8888) {
glTexImage2D(GL_TEXTURE_2D, 0,
GL_RGBA, texture_w, texture_h, 0,
GL_RGBA, GL_UNSIGNED_BYTE, data);
@ -620,7 +621,8 @@ regular:
0, bounds.top, t.width, bounds.height(),
GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4,
t.data + bounds.top*t.stride*2);
} else if (t.format == GGL_PIXEL_FORMAT_RGBA_8888) {
} else if (t.format == GGL_PIXEL_FORMAT_RGBA_8888 ||
t.format == GGL_PIXEL_FORMAT_RGBX_8888) {
glTexSubImage2D(GL_TEXTURE_2D, 0,
0, bounds.top, t.width, bounds.height(),
GL_RGBA, GL_UNSIGNED_BYTE,