diff options
Diffstat (limited to 'merrifield/common/buffers/BufferManager.cpp')
-rw-r--r-- | merrifield/common/buffers/BufferManager.cpp | 41 |
1 files changed, 17 insertions, 24 deletions
diff --git a/merrifield/common/buffers/BufferManager.cpp b/merrifield/common/buffers/BufferManager.cpp index 6a939ae..ca6f0ad 100644 --- a/merrifield/common/buffers/BufferManager.cpp +++ b/merrifield/common/buffers/BufferManager.cpp @@ -17,14 +17,14 @@ #include <HwcTrace.h> #include <hardware/hwcomposer.h> #include <BufferManager.h> +#include <hal_public.h> #include <DrmConfig.h> namespace android { namespace intel { BufferManager::BufferManager() - : mGrallocModule(NULL), - mAllocDev(NULL), + : mGralloc(NULL), mFrameBuffers(), mBufferPool(NULL), mDataBuffer(NULL), @@ -56,16 +56,9 @@ bool BufferManager::initialize() } // init gralloc module - hw_module_t const* module; - if (hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &module)) { + if (gralloc_open_img(&mGralloc)) { DEINIT_AND_RETURN_FALSE("failed to get gralloc module"); } - mGrallocModule = (gralloc_module_t const*)module; - - gralloc_open(module, &mAllocDev); - if (!mAllocDev) { - WTRACE("failed to open alloc device"); - } // create a dummy data buffer mDataBuffer = createDataBuffer(0); @@ -100,9 +93,9 @@ void BufferManager::deinitialize() } mFrameBuffers.clear(); - if (mAllocDev) { - gralloc_close(mAllocDev); - mAllocDev = NULL; + if (mGralloc) { + gralloc_close_img(mGralloc); + mGralloc = NULL; } if (mDataBuffer) { @@ -222,7 +215,7 @@ buffer_handle_t BufferManager::allocFrameBuffer(int width, int height, int *stri { RETURN_NULL_IF_NOT_INIT(); - if (!mAllocDev) { + if (!mGralloc) { WTRACE("Alloc device is not available"); return 0; } @@ -234,8 +227,8 @@ buffer_handle_t BufferManager::allocFrameBuffer(int width, int height, int *stri ITRACE("size of frame buffer to create: %dx%d", width, height); buffer_handle_t handle = 0; - status_t err = mAllocDev->alloc( - mAllocDev, + status_t err = gralloc_device_alloc_img( + mGralloc, width, height, DrmConfig::getFrameBufferFormat(), @@ -282,7 +275,7 @@ buffer_handle_t BufferManager::allocFrameBuffer(int width, int height, int *stri if (mapper) { delete mapper; } - mAllocDev->free(mAllocDev, handle); + gralloc_device_free_img(mGralloc, handle); return 0; } @@ -290,7 +283,7 @@ void BufferManager::freeFrameBuffer(buffer_handle_t fbHandle) { RETURN_VOID_IF_NOT_INIT(); - if (!mAllocDev) { + if (!mGralloc) { WTRACE("Alloc device is not available"); return; } @@ -306,14 +299,14 @@ void BufferManager::freeFrameBuffer(buffer_handle_t fbHandle) mapper->putFbHandle(); delete mapper; mFrameBuffers.removeItem(fbHandle); - mAllocDev->free(mAllocDev, handle); + gralloc_device_free_img(mGralloc, handle); } buffer_handle_t BufferManager::allocGrallocBuffer(uint32_t width, uint32_t height, uint32_t format, uint32_t usage) { RETURN_NULL_IF_NOT_INIT(); - if (!mAllocDev) { + if (!mGralloc) { WTRACE("Alloc device is not available"); return 0; } @@ -326,8 +319,8 @@ buffer_handle_t BufferManager::allocGrallocBuffer(uint32_t width, uint32_t heigh ITRACE("size of graphic buffer to create: %dx%d", width, height); buffer_handle_t handle = 0; int stride; - status_t err = mAllocDev->alloc( - mAllocDev, + status_t err = gralloc_device_alloc_img( + mGralloc, width, height, format, @@ -345,13 +338,13 @@ buffer_handle_t BufferManager::allocGrallocBuffer(uint32_t width, uint32_t heigh void BufferManager::freeGrallocBuffer(buffer_handle_t handle) { RETURN_VOID_IF_NOT_INIT(); - if (!mAllocDev) { + if (!mGralloc) { WTRACE("Alloc device is not available"); return; } if (handle) - mAllocDev->free(mAllocDev, handle); + gralloc_device_free_img(mGralloc, handle); } } // namespace intel |