Merge "fix live wallpapers on Droid" into gingerbread

This commit is contained in:
Mathias Agopian 2010-06-30 15:59:02 -07:00 committed by Android (Google) Code Review
commit 05dedd17ec
3 changed files with 13 additions and 12 deletions

View File

@ -20,6 +20,10 @@ LOCAL_SRC_FILES:= \
LOCAL_CFLAGS:= -DLOG_TAG=\"SurfaceFlinger\"
LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES
ifeq ($(TARGET_BOARD_PLATFORM), omap3)
LOCAL_CFLAGS += -DNO_RGBX_8888
endif
# need "-lrt" on Linux simulator to pick up clock_gettime
ifeq ($(TARGET_SIMULATOR),true)
ifeq ($(HOST_OS),linux)

View File

@ -1263,10 +1263,19 @@ sp<Layer> SurfaceFlinger::createNormalSurface(
format = PIXEL_FORMAT_RGBA_8888;
break;
case PIXEL_FORMAT_OPAQUE:
#ifdef NO_RGBX_8888
format = PIXEL_FORMAT_RGB_565;
#else
format = PIXEL_FORMAT_RGBX_8888;
#endif
break;
}
#ifdef NO_RGBX_8888
if (format == PIXEL_FORMAT_RGBX_8888)
format = PIXEL_FORMAT_RGBA_8888;
#endif
sp<Layer> layer = new Layer(this, display, client);
status_t err = layer->setBuffers(w, h, format, flags);
if (LIKELY(err != NO_ERROR)) {

View File

@ -127,18 +127,6 @@ status_t GraphicBuffer::initSize(uint32_t w, uint32_t h, PixelFormat format,
{
GraphicBufferAllocator& allocator = GraphicBufferAllocator::get();
status_t err = allocator.alloc(w, h, format, reqUsage, &handle, &stride);
if (err<0 && format == PIXEL_FORMAT_RGBX_8888) {
/*
* There is currently a bug with some gralloc implementations
* not supporting RGBX_8888. In this case, we revert to using RGBA_8888
* which is not exactly the same, as GL_REPLACE will yield a different
* result.
*/
format = PIXEL_FORMAT_RGBA_8888;
err = allocator.alloc(w, h, format, reqUsage, &handle, &stride);
}
if (err == NO_ERROR) {
this->width = w;
this->height = h;