std::shared_ptr<DSRenderView> renderView = std::make_shared<DSRenderViewDaliImpl>(window, __offscreenApplication.GetWindow());
// callbacks
- window->registerCallbackBufferChanged(this, std::bind(&DSRenderEngineDaliImpl::__onWindowUpdated, this, std::placeholders::_1));
- window->registerCallbackWindowDestroyed(this, std::bind(&DSRenderEngineDaliImpl::__onWindowDestroyed, this, std::placeholders::_1));
+ renderView->registerCallbackUpdated(this, std::bind(&DSRenderEngineDaliImpl::__onRenderViewUpdated, this, std::placeholders::_1));
return renderView;
}
return true;
}
-void DSRenderEngineDaliImpl::__onWindowUpdated(std::shared_ptr<IDSBuffer> buffer)
+void DSRenderEngineDaliImpl::__onRenderViewUpdated(void *data)
{
if (!__needToRender) {
- DSLOG_DBG("DSRenderEngineDaliImpl", "Something updated!! with buffer(%p)", buffer.get());
- __needToRender = true;
- }
-}
-
-void DSRenderEngineDaliImpl::__onWindowDestroyed(void *data)
-{
- if (!__needToRender) {
- DSLOG_DBG("DSRenderEngineDaliImpl", "Window destroyed!!");
- // TODO: update twice, at this time and at idle handler.
- // do not update a frame only once..
- // NEED to check why dali does not update a frame at this time by execute one RenderOnce call.
- Adaptor::Get().RenderOnce();
+ DSLOG_DBG("DSRenderEngineDaliImpl", "Something updated on RenderView!! with buffer(%p)");
__needToRender = true;
}
}
void onInitialize();
private:
- void __onWindowUpdated(std::shared_ptr<IDSBuffer> buffer);
- void __onWindowDestroyed(void *data);
+ void __onRenderViewUpdated(void *data);
std::shared_ptr<IDSBufferQueue> __bufferQueue;
Dali::OffscreenApplication __offscreenApplication;