void
_AppWidgetBuffer::_GemBuffer::OnUnlockBuffer(void)
{
- if (__pCompensateBuffer)
+ if (__pGemBuffer)
{
- int* pPixel = (int*)__pCompensateBuffer;
- int* pGemPixel = (int*)__pGemBuffer;
- int gap = __pDri2Buffer->pitch - (__gemSize.width * __depth);
-
- for (int y = 0; y < __gemSize.height; y++)
+ if (__pCompensateBuffer)
{
- for (int x = 0; x < __gemSize.width; x++)
+ int* pPixel = (int*)__pCompensateBuffer;
+ int* pGemPixel = (int*)__pGemBuffer;
+ int gap = __pDri2Buffer->pitch - (__gemSize.width * __depth);
+
+ for (int y = 0; y < __gemSize.height; y++)
{
- *pGemPixel++ = *pPixel++;
- }
+ for (int x = 0; x < __gemSize.width; x++)
+ {
+ *pGemPixel++ = *pPixel++;
+ }
- pGemPixel = (int*)(((char*)pGemPixel) + gap);
+ pGemPixel = (int*)(((char*)pGemPixel) + gap);
+ }
}
- }
- tbm_bo_unmap(__pTbmBo);
- __pGemBuffer = null;
+ tbm_bo_unmap(__pTbmBo);
+ __pGemBuffer = null;
+ }
}
void*
}
void
+PreRender(void* pData, Evas* pEvas, void* pEventInfo)
+{
+ SysLog(NID_SHELL, "ENTER");
+
+ _AppWidgetLayer* pAppWidgetLayer = static_cast<_AppWidgetLayer*>(pData);
+ SysTryReturnVoidResult(NID_SHELL, pAppWidgetLayer, E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid.");
+
+ pAppWidgetLayer->OnNativeCanvasPreRendered();
+}
+
+void
PostRender(void* pData, Evas* pEvas, void* pEventInfo)
{
SysLog(NID_SHELL, "ENTER");
_AppWidgetLayer* pAppWidgetLayer = static_cast<_AppWidgetLayer*>(pData);
SysTryReturnVoidResult(NID_SHELL, pAppWidgetLayer, E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid.");
- pAppWidgetLayer->OnRendered();
+ pAppWidgetLayer->OnNativeCanvasPostRendered();
}
}
Evas* pEvas = ecore_evas_get(pEcoreEvas.get());
SysTryReturn(NID_SHELL, pEvas, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
+ evas_event_callback_add(pEvas, EVAS_CALLBACK_RENDER_PRE, PreRender, this);
// evas_event_callback_add(pEvas, EVAS_CALLBACK_RENDER_POST, PostRender, this);
unique_ptr<Evas_Object, _EvasObjectDeleter> pEvasObject(evas_object_rectangle_add(pEvas));
SysTryReturnVoidResult(NID_SHELL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
}
+void
+_AppWidgetLayer::OnNativeCanvasPreRendered(void)
+{
+ SysLog(NID_SHELL, "ENTER");
+
+ __pAppWidgetBuffer->LockBuffer();
+}
+
+void
+_AppWidgetLayer::OnNativeCanvasPostRendered(void)
+{
+}
+
result
_AppWidgetLayer::RegisterTouchEventListener(void)
{
void
_AppWidgetLayer::Flush(void)
{
-// SysLog(NID_SHELL, "ENTER");
-
bool needed = IsFlushNeeded();
if (needed)
{
- __pAppWidgetBuffer->LockBuffer();
-
Evas* pEvas = ecore_evas_get(__pEcoreEvas.get());
SysTryReturnVoidResult(NID_SHELL, pEvas, E_OUT_OF_MEMORY, "[%s] Propagating.", GetErrorMessage(E_OUT_OF_MEMORY));
evas_data_argb_unpremul(static_cast<unsigned int*>(pBuffer), __size.width * __size.height);
OnRendered();
-
- __pAppWidgetBuffer->UnlockBuffer();
}
+
+ __pAppWidgetBuffer->UnlockBuffer();
}
}} // Tizen::Shell