From 2b27d13d163b36f5f05413daee098c9d900dd1ab Mon Sep 17 00:00:00 2001 From: Youngki Ahn Date: Thu, 22 Aug 2013 15:51:00 +0900 Subject: [PATCH] Callback function appeded in BitmapTool::SetCallback API Change-Id: Ic3ddefc61ca3ba17743fef83741af9a49ccdc9da Signed-off-by: Youngki Ahn --- src/graphics/FGrp_Bitmap.cpp | 17 +++++++++++++++-- src/graphics/FGrp_Bitmap.h | 5 ++++- src/graphics/FGrp_BitmapImpl.cpp | 13 ++++++++++--- src/graphics/FGrp_BitmapTool.cpp | 5 +++-- src/graphics/FGrp_BitmapUtil.cpp | 7 ++++--- src/graphics/FGrp_BitmapUtil.h | 10 +++++++--- src/graphics/inc/FGrp_BitmapImpl.h | 5 ++++- src/graphics/inc/FGrp_BitmapTool.h | 4 +++- 8 files changed, 50 insertions(+), 16 deletions(-) mode change 100644 => 100755 src/graphics/FGrp_BitmapTool.cpp mode change 100644 => 100755 src/graphics/FGrp_BitmapUtil.cpp mode change 100644 => 100755 src/graphics/FGrp_BitmapUtil.h mode change 100644 => 100755 src/graphics/inc/FGrp_BitmapTool.h diff --git a/src/graphics/FGrp_Bitmap.cpp b/src/graphics/FGrp_Bitmap.cpp index 3ed088e..24ecae2 100755 --- a/src/graphics/FGrp_Bitmap.cpp +++ b/src/graphics/FGrp_Bitmap.cpp @@ -299,6 +299,8 @@ _Bitmap::_Bitmap(void) , __pLockCallbackParam(null) , __pUnlockCallbackFunc(null) , __pUnlockCallbackParam(null) + , __pPostlockCallbackFunc(null) + , __pPostlockCallbackParam(null) { _Util::CarveMagicKey(*this, __magicKey); } @@ -925,7 +927,14 @@ _Bitmap::LockFast(BufferInfo& info, long timeout) this->__pLockCallbackFunc(this->__pLockCallbackParam); } - return this->__Lock(info, timeout); + result r = this->__Lock(info, timeout); + + if (r == E_SUCCESS && this->__pPostlockCallbackFunc) + { + this->__pPostlockCallbackFunc(info, this->__pPostlockCallbackParam); + } + + return r; } result @@ -1013,13 +1022,17 @@ _Bitmap::AssignUserBuffer(unsigned char* pExtBuffer, int bytesPerLine) void _Bitmap::SetCallback(void (* LockCallback)(void*), void* pLockCallbackParam, - void (* UnlockCallback)(void*), void* pUnlockCallbackParam) + void (* UnlockCallback)(void*), void* pUnlockCallbackParam, + void (* PostlockCallback)(BufferInfo&, void*), void* pPostlockCallbackParam) { this->__pLockCallbackFunc = LockCallback; this->__pLockCallbackParam = pLockCallbackParam; this->__pUnlockCallbackFunc = UnlockCallback; this->__pUnlockCallbackParam = pUnlockCallbackParam; + + this->__pPostlockCallbackFunc = PostlockCallback; + this->__pPostlockCallbackParam = pPostlockCallbackParam; } result diff --git a/src/graphics/FGrp_Bitmap.h b/src/graphics/FGrp_Bitmap.h index 17d1daa..7da7281 100755 --- a/src/graphics/FGrp_Bitmap.h +++ b/src/graphics/FGrp_Bitmap.h @@ -93,7 +93,8 @@ public: void AssignUserBuffer(unsigned char* pBuffer, int bytesPerLine); void SetCallback(void (* LockCallback)(void*), void* pLockCallbackParam, - void (* UnlockCallback)(void*), void* pUnlockCallbackParam); + void (* UnlockCallback)(void*), void* pUnlockCallbackParam, + void (* PostlockCallback)(BufferInfo&, void*), void* pPostlockCallbackParam); protected: void _SetOwnership(bool ownership); @@ -132,6 +133,8 @@ private: void* __pLockCallbackParam; void (* __pUnlockCallbackFunc)(void*); void* __pUnlockCallbackParam; + void (* __pPostlockCallbackFunc)(BufferInfo&, void*); + void* __pPostlockCallbackParam; friend class _Canvas; friend class _BitmapImpl; diff --git a/src/graphics/FGrp_BitmapImpl.cpp b/src/graphics/FGrp_BitmapImpl.cpp index 57baaff..2ffe89c 100755 --- a/src/graphics/FGrp_BitmapImpl.cpp +++ b/src/graphics/FGrp_BitmapImpl.cpp @@ -321,6 +321,9 @@ _BitmapImpl::_BitmapImpl(void) this->_sharedItem->pLockCallbackParam = null; this->_sharedItem->pUnlockCallbackFunc = null; this->_sharedItem->pUnlockCallbackParam = null; + this->_sharedItem->pPostlockCallbackFunc = null; + this->_sharedItem->pPostlockCallbackParam = null; + this->_sharedItem->isMutable = true; this->_sharedItem->associated.pixelFormat = BITMAP_PIXEL_FORMAT_ARGB8888; this->_sharedItem->associated.hasBeenDetectedByUsingName = false; @@ -1646,7 +1649,8 @@ _BitmapImpl::CheckNinePatchedBitmapStrictly(const Bitmap& bitmap) bool _BitmapImpl::_SetCallback(void (* DestroyCallback)(void*), void* pDestroyCallbackParam, void (* LockCallback)(void*), void* pLockCallbackParam, - void (* UnlockCallback)(void*), void* pUnlockCallbackParam) + void (* UnlockCallback)(void*), void* pUnlockCallbackParam, + void (* PostlockCallback)(BufferInfo&, void*), void* pPostlockCallbackParam) { if (!(INSTANCE_IS_VALID)) { @@ -1665,14 +1669,17 @@ _BitmapImpl::_SetCallback(void (* DestroyCallback)(void*), void* pDestroyCallbac this->_sharedItem->pUnlockCallbackFunc = UnlockCallback; this->_sharedItem->pUnlockCallbackParam = pUnlockCallbackParam; + this->_sharedItem->pPostlockCallbackFunc = PostlockCallback; + this->_sharedItem->pPostlockCallbackParam = pPostlockCallbackParam; + if (this->_sharedItem->nativeBitmap.get()) { - this->_sharedItem->nativeBitmap->SetCallback(LockCallback, pLockCallbackParam, UnlockCallback, pUnlockCallbackParam); + this->_sharedItem->nativeBitmap->SetCallback(LockCallback, pLockCallbackParam, UnlockCallback, pUnlockCallbackParam, PostlockCallback, pPostlockCallbackParam); } if (this->_sharedItem->scaledNativeBitmap.get()) { - this->_sharedItem->scaledNativeBitmap->SetCallback(LockCallback, pLockCallbackParam, UnlockCallback, pUnlockCallbackParam); + this->_sharedItem->scaledNativeBitmap->SetCallback(LockCallback, pLockCallbackParam, UnlockCallback, pUnlockCallbackParam, PostlockCallback, pPostlockCallbackParam); } return true; diff --git a/src/graphics/FGrp_BitmapTool.cpp b/src/graphics/FGrp_BitmapTool.cpp old mode 100644 new mode 100755 index e0b9ff4..44a8b15 --- a/src/graphics/FGrp_BitmapTool.cpp +++ b/src/graphics/FGrp_BitmapTool.cpp @@ -38,9 +38,10 @@ bool _BitmapTool::SetCallback(Tizen::Graphics::Bitmap& bitmap, void (* DestroyCallback)(void*), void* pCallbackParam, void (* LockCallback)(void*), void* pLockParam, - void (* UnlockCallback)(void*), void* pUnlockParam) + void (* UnlockCallback)(void*), void* pUnlockParam, + void (* PostlockCallback)(Tizen::Graphics::BufferInfo& bufferInfo, void*), void* pPostlockParam) { - return _BitmapUtil::SetCallback(bitmap, DestroyCallback, pCallbackParam, LockCallback, pLockParam, UnlockCallback, pUnlockParam); + return _BitmapUtil::SetCallback(bitmap, DestroyCallback, pCallbackParam, LockCallback, pLockParam, UnlockCallback, pUnlockParam, PostlockCallback, pPostlockParam); } void diff --git a/src/graphics/FGrp_BitmapUtil.cpp b/src/graphics/FGrp_BitmapUtil.cpp old mode 100644 new mode 100755 index 1776497..8b30214 --- a/src/graphics/FGrp_BitmapUtil.cpp +++ b/src/graphics/FGrp_BitmapUtil.cpp @@ -247,7 +247,7 @@ Tizen::Graphics::_BitmapUtil::ChangeBuffer(Tizen::Graphics::Bitmap& srcBitmap, v return E_SYSTEM; } - if (!SetCallback(srcBitmap, DestroyCallback, pCallbackParam, null, null, null, null)) + if (!SetCallback(srcBitmap, DestroyCallback, pCallbackParam, null, null, null, null, null, null)) { return E_SYSTEM; } @@ -261,13 +261,14 @@ bool Tizen::Graphics::_BitmapUtil::SetCallback(Tizen::Graphics::Bitmap& bitmap, void (* DestroyCallback)(void*), void* pCallbackParam, void (* LockCallback)(void*), void* pLockParam, - void (* UnlockCallback)(void*), void* pUnlockParam) + void (* UnlockCallback)(void*), void* pUnlockParam, + void (* PostlockCallback)(Tizen::Graphics::BufferInfo& bufferInfo, void*), void* pPostlockParam) { Tizen::Graphics::_BitmapImpl* pBitmapImpl = _BitmapImpl::GetInstance(bitmap); _BitmapImplHack* pBitmapImplHack = static_cast <_BitmapImplHack*>(pBitmapImpl); - return (pBitmapImplHack) ? pBitmapImplHack->SetCallback(DestroyCallback, pCallbackParam, LockCallback, pLockParam, UnlockCallback, pUnlockParam) : false; + return (pBitmapImplHack) ? pBitmapImplHack->SetCallback(DestroyCallback, pCallbackParam, LockCallback, pLockParam, UnlockCallback, pUnlockParam, PostlockCallback, pPostlockParam) : false; } void diff --git a/src/graphics/FGrp_BitmapUtil.h b/src/graphics/FGrp_BitmapUtil.h old mode 100644 new mode 100755 index 954dd8b..748c489 --- a/src/graphics/FGrp_BitmapUtil.h +++ b/src/graphics/FGrp_BitmapUtil.h @@ -58,7 +58,8 @@ result ChangeBuffer(Tizen::Graphics::Bitmap& srcBitmap, void* pBuffer, long byte bool SetCallback(Tizen::Graphics::Bitmap& bitmap, void (* DestroyCallback)(void*), void* pCallbackParam, void (* LockCallback)(void*), void* pLockParam, - void (* UnlockCallback)(void*), void* pUnlockParam); + void (* UnlockCallback)(void*), void* pUnlockParam, + void (* PostlockCallback)(Tizen::Graphics::BufferInfo& bufferInfo, void*), void* pPostlockParam); void ResetCallback(Tizen::Graphics::Bitmap& bitmap); @@ -124,14 +125,15 @@ public: bool SetCallback(void (* DestroyCallback)(void*), void* pDestroyCallbackParam, void (* LockCallback)(void*), void* pLockCallbackParam, - void (* UnlockCallback)(void*), void* pUnlockCallbackParam) + void (* UnlockCallback)(void*), void* pUnlockCallbackParam, + void (* PostlockCallback)(BufferInfo&, void*), void* pPostlockCallbackParam) { if (this->_sharedItem.get() == 0) { return false; } - return this->_SetCallback(DestroyCallback, pDestroyCallbackParam, LockCallback, pLockCallbackParam, UnlockCallback, pUnlockCallbackParam); + return this->_SetCallback(DestroyCallback, pDestroyCallbackParam, LockCallback, pLockCallbackParam, UnlockCallback, pUnlockCallbackParam, PostlockCallback, pPostlockCallbackParam); } void ResetCallback(void) @@ -147,6 +149,8 @@ public: this->_sharedItem->pLockCallbackParam = null; this->_sharedItem->pUnlockCallbackFunc = null; this->_sharedItem->pUnlockCallbackParam = null; + this->_sharedItem->pPostlockCallbackFunc = null; + this->_sharedItem->pPostlockCallbackParam = null; } }; // _BitmapImplHack diff --git a/src/graphics/inc/FGrp_BitmapImpl.h b/src/graphics/inc/FGrp_BitmapImpl.h index 09dcbdf..c031bfb 100755 --- a/src/graphics/inc/FGrp_BitmapImpl.h +++ b/src/graphics/inc/FGrp_BitmapImpl.h @@ -226,7 +226,8 @@ public: protected: bool _SetCallback(void (* DestroyCallback)(void*), void* pDestroyCallbackParam, void (* LockCallback)(void*), void* pLockCallbackParam, - void (* UnlockCallback)(void*), void* pUnlockCallbackParam); + void (* UnlockCallback)(void*), void* pUnlockCallbackParam, + void (* PostlockCallback)(BufferInfo&, void*), void* pPostlockCallbackParam); static _BitmapImpl*& _GetBitmapImpl(Bitmap* pBitmap); private: @@ -257,6 +258,8 @@ protected: void* pLockCallbackParam; void (* pUnlockCallbackFunc)(void*); void* pUnlockCallbackParam; + void (* pPostlockCallbackFunc)(BufferInfo&, void*); + void* pPostlockCallbackParam; struct { diff --git a/src/graphics/inc/FGrp_BitmapTool.h b/src/graphics/inc/FGrp_BitmapTool.h old mode 100644 new mode 100755 index 4de370e..10663b4 --- a/src/graphics/inc/FGrp_BitmapTool.h +++ b/src/graphics/inc/FGrp_BitmapTool.h @@ -26,6 +26,7 @@ #include #include +#include namespace Tizen { namespace Graphics @@ -43,7 +44,8 @@ bool SetCallback(Tizen::Graphics::Bitmap& bitmap, void (* DestroyCallback)(void*), void* pCallbackParam, void (* LockCallback)(void*), void* pLockParam, - void (* UnlockCallback)(void*), void* pUnlockParam); + void (* UnlockCallback)(void*), void* pUnlockParam, + void (* PostlockCallback)(Tizen::Graphics::BufferInfo& bufferInfo, void*) = 0, void* pPostlockParam = 0); void ResetCallback(Tizen::Graphics::Bitmap& bitmap); -- 2.7.4