From d86beb99a7c9625daad01c4aaa5eaf4ca3ac2194 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Wed, 2 Dec 2009 16:23:11 -0800 Subject: fix [2291418] Camera preview cannot work in Emulator The image buffer used by glTexImage2d() would be uninitialized when no copybit engine can be found. We now always initialize images, since the abscence of copybit is not necessarily fatal. --- libs/surfaceflinger/LayerBuffer.cpp | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'libs/surfaceflinger/LayerBuffer.cpp') diff --git a/libs/surfaceflinger/LayerBuffer.cpp b/libs/surfaceflinger/LayerBuffer.cpp index 88ef7e43005c..eb017bf835c5 100644 --- a/libs/surfaceflinger/LayerBuffer.cpp +++ b/libs/surfaceflinger/LayerBuffer.cpp @@ -266,7 +266,16 @@ LayerBuffer::Buffer::Buffer(const ISurface::BufferHeap& buffers, ssize_t offset) : mBufferHeap(buffers) { NativeBuffer& src(mNativeBuffer); - src.img.handle = 0; + src.crop.l = 0; + src.crop.t = 0; + src.crop.r = buffers.w; + src.crop.b = buffers.h; + + src.img.w = buffers.hor_stride ?: buffers.w; + src.img.h = buffers.ver_stride ?: buffers.h; + src.img.format = buffers.format; + src.img.base = (void*)(intptr_t(buffers.heap->base()) + offset); + src.img.handle = 0; gralloc_module_t const * module = LayerBuffer::getGrallocModule(); if (module && module->perform) { @@ -276,19 +285,12 @@ LayerBuffer::Buffer::Buffer(const ISurface::BufferHeap& buffers, ssize_t offset) offset, buffers.heap->base(), &src.img.handle); - if (err == NO_ERROR) { - src.crop.l = 0; - src.crop.t = 0; - src.crop.r = buffers.w; - src.crop.b = buffers.h; - - src.img.w = buffers.hor_stride ?: buffers.w; - src.img.h = buffers.ver_stride ?: buffers.h; - src.img.format = buffers.format; - src.img.base = (void*)(intptr_t(buffers.heap->base()) + offset); - } + LOGE_IF(err, "CREATE_HANDLE_FROM_BUFFER (heapId=%d, size=%d, " + "offset=%ld, base=%p) failed (%s)", + buffers.heap->heapID(), buffers.heap->getSize(), + offset, buffers.heap->base(), strerror(-err)); } -} + } LayerBuffer::Buffer::~Buffer() { -- cgit v1.2.3-59-g8ed1b