From 4ba5398ead375cf0fc37b5641f04398281b81f83 Mon Sep 17 00:00:00 2001 From: MuHong Byun Date: Mon, 8 Mar 2021 08:47:47 +0900 Subject: [PATCH] Update evasgl sync logic Signed-off-by: MuHong Byun --- shell/platform/tizen/tizen_renderer.cc | 13 +++++++++---- shell/platform/tizen/tizen_renderer.h | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/shell/platform/tizen/tizen_renderer.cc b/shell/platform/tizen/tizen_renderer.cc index f4ba73418f7b3..a3ab58917b006 100644 --- a/shell/platform/tizen/tizen_renderer.cc +++ b/shell/platform/tizen/tizen_renderer.cc @@ -481,7 +481,6 @@ bool TizenRenderer::OnMakeCurrent() { if (evas_gl_make_current(evas_gl_, gl_surface_, gl_context_) != EINA_TRUE) { return false; } - evas_object_image_pixels_dirty_set((Evas_Object*)GetImageHandle(), EINA_TRUE); return true; } @@ -517,6 +516,7 @@ bool TizenRenderer::OnPresent() { SendRotationChangeDone(); received_rotation = false; } + evas_object_image_pixels_dirty_set((Evas_Object*)GetImageHandle(), EINA_TRUE); return true; } @@ -662,6 +662,8 @@ bool TizenRenderer::InitializeRenderer(int32_t x, int32_t y, int32_t w, bool TizenRenderer::IsValid() { return is_valid_; } +void TizenRenderer::flush() { glFlush(); } + bool TizenRenderer::SetupEvasGL(int32_t x, int32_t y, int32_t w, int32_t h) { evas_gl_ = evas_gl_new( evas_object_evas_get((Evas_Object*)SetupEvasWindow(x, y, w, h))); @@ -697,9 +699,12 @@ bool TizenRenderer::SetupEvasGL(int32_t x, int32_t y, int32_t w, int32_t h) { Evas_Native_Surface ns; evas_gl_native_surface_get(evas_gl_, gl_surface_, &ns); evas_object_image_native_surface_set((Evas_Object*)GetImageHandle(), &ns); - pixelDirtyCallback_ = [](void* data, Evas_Object* o) {}; + pixelDirtyCallback_ = [](void* data, Evas_Object* o) { + TizenRenderer* renderer = (TizenRenderer*)data; + renderer->flush(); + }; evas_object_image_pixels_get_callback_set((Evas_Object*)GetImageHandle(), - pixelDirtyCallback_, NULL); + pixelDirtyCallback_, this); return true; } @@ -719,4 +724,4 @@ void TizenRenderer::DestoryEvasGL() { evas_gl_free(evas_gl_); } -#endif \ No newline at end of file +#endif diff --git a/shell/platform/tizen/tizen_renderer.h b/shell/platform/tizen/tizen_renderer.h index 31d866dc951c8..66ec49eb38181 100644 --- a/shell/platform/tizen/tizen_renderer.h +++ b/shell/platform/tizen/tizen_renderer.h @@ -36,6 +36,7 @@ class TizenRenderer { bool OnPresent(); uint32_t OnGetFBO(); void* OnProcResolver(const char* name); + void flush(); virtual TizenWindowGeometry GetGeometry() = 0; bool IsValid(); virtual void Show() = 0;