From 53c6d816ac6ca2830412464648beee5c7344d75c Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Fri, 13 Mar 2026 13:02:31 +0900 Subject: [PATCH 1/7] Fix EGLNativeWindowType type compatibility with coregl update Update eglCreateWindowSurface call to properly cast tbm_surface_queue and egl_window to EGLNativeWindowType to match the updated coregl's eglplatform.h signature. --- .../shell/platform/tizen/tizen_renderer_egl.cc | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/flutter/shell/platform/tizen/tizen_renderer_egl.cc b/flutter/shell/platform/tizen/tizen_renderer_egl.cc index 258ddd0..9266055 100644 --- a/flutter/shell/platform/tizen/tizen_renderer_egl.cc +++ b/flutter/shell/platform/tizen/tizen_renderer_egl.cc @@ -94,11 +94,11 @@ bool TizenRendererEgl::CreateSurface(void* render_target, const EGLint attribs[] = {EGL_NONE}; if (render_target_display) { - auto* egl_window = - static_cast(ecore_wl2_egl_window_native_get( - static_cast(render_target))); - egl_surface_ = eglCreateWindowSurface(egl_display_, egl_config_, - egl_window, attribs); + auto egl_window = ecore_wl2_egl_window_native_get( + static_cast(render_target)); + egl_surface_ = eglCreateWindowSurface( + egl_display_, egl_config_, + reinterpret_cast(egl_window), attribs); } else { #ifdef NUI_SUPPORT Dali::NativeImageSourceQueuePtr dali_native_image_queue = @@ -106,10 +106,9 @@ bool TizenRendererEgl::CreateSurface(void* render_target, tbm_surface_queue_h tbm_surface_queue_ = Dali::AnyCast( dali_native_image_queue->GetNativeImageSourceQueue()); - auto* egl_window = - reinterpret_cast(tbm_surface_queue_); - egl_surface_ = eglCreateWindowSurface(egl_display_, egl_config_, - egl_window, attribs); + egl_surface_ = eglCreateWindowSurface( + egl_display_, egl_config_, + reinterpret_cast(tbm_surface_queue_), attribs); #endif } From bf34931eaa3e4c91124b84b39471c4d6a98759f3 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Fri, 13 Mar 2026 14:58:19 +0900 Subject: [PATCH 2/7] ++ --- flutter/shell/platform/tizen/tizen_renderer_egl.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flutter/shell/platform/tizen/tizen_renderer_egl.cc b/flutter/shell/platform/tizen/tizen_renderer_egl.cc index 9266055..d618943 100644 --- a/flutter/shell/platform/tizen/tizen_renderer_egl.cc +++ b/flutter/shell/platform/tizen/tizen_renderer_egl.cc @@ -94,7 +94,7 @@ bool TizenRendererEgl::CreateSurface(void* render_target, const EGLint attribs[] = {EGL_NONE}; if (render_target_display) { - auto egl_window = ecore_wl2_egl_window_native_get( + const auto egl_window = ecore_wl2_egl_window_native_get( static_cast(render_target)); egl_surface_ = eglCreateWindowSurface( egl_display_, egl_config_, From bbd1ea6cc8b82f099d30b4a2d090a027fe2d453c Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Thu, 12 Mar 2026 16:06:21 +0900 Subject: [PATCH 3/7] Add DALI integration packages for Tizen 11.0 - Update base_repo URL threshold from API 10.0 to 11.0 - Add dali_integration_devel_packages list, as dali's devel-api header has been moved to integration-api rpm starting from Tizen 11. --- tools/generate_sysroot.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/generate_sysroot.py b/tools/generate_sysroot.py index d160a26..2d66def 100755 --- a/tools/generate_sysroot.py +++ b/tools/generate_sysroot.py @@ -105,6 +105,11 @@ 'dali2-toolkit-devel', ] +dali_integration_devel_packages = [ + 'dali2-integration-devel', + 'dali2-adaptor-integration-devel', + 'dali2-toolkit-integration-devel', +] def generate_sysroot(sysroot: Path, api_version: float, arch: str, quiet=False): target = 'standard' @@ -122,7 +127,7 @@ def generate_sysroot(sysroot: Path, api_version: float, arch: str, quiet=False): else: sys.exit('Unknown arch: ' + arch) - if api_version >= 10.0: + if api_version >= 11.0: base_repo = 'http://download.tizen.org/snapshots/TIZEN/Tizen/Tizen-Base/reference/repos/standard/packages' unified_repo = 'http://download.tizen.org/snapshots/TIZEN/Tizen/Tizen-Unified/reference/repos/{}/packages'.format( target) @@ -150,6 +155,8 @@ def generate_sysroot(sysroot: Path, api_version: float, arch: str, quiet=False): packages = base_packages + unified_packages if api_version >= 6.5: packages += dali_packages + if api_version >= 11.0: + packages += dali_integration_devel_packages for package in packages: quoted = urllib.parse.quote(package) From 4273a176cc7be1266fe0de9418c796b1100cec58 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Thu, 12 Mar 2026 19:13:38 +0900 Subject: [PATCH 4/7] Support Tizen 11 --- build/config/BUILD.gn | 14 ++++++------ flutter/shell/platform/tizen/BUILD.gn | 22 +++++++++++++++++++ .../shell/platform/tizen/flutter_tizen_nui.cc | 8 +++++++ .../platform/tizen/tizen_renderer_egl.cc | 12 ++++++++++ .../shell/platform/tizen/tizen_view_nui.cc | 4 ++++ flutter/shell/platform/tizen/tizen_view_nui.h | 12 ++++++++++ 6 files changed, 65 insertions(+), 7 deletions(-) diff --git a/build/config/BUILD.gn b/build/config/BUILD.gn index 4201f02..1fbe4a0 100644 --- a/build/config/BUILD.gn +++ b/build/config/BUILD.gn @@ -138,18 +138,18 @@ config("system_cxx") { } include_dirs = [] - if (api_version == "10.0") { - include_dirs += [ - "${lib_path}/gcc/${gcc_target_triple}/14.2.0/include", - "${lib_path}/gcc/${gcc_target_triple}/14.2.0/include/c++", - "${lib_path}/gcc/${gcc_target_triple}/14.2.0/include/c++/${gcc_target_triple}", - ] - } else { + if (api_version == "6.0" || api_version == "6.5" || api_version == "7.0" || api_version == "8.0" || api_version == "9.0") { include_dirs += [ "${lib_path}/gcc/${gcc_target_triple}/9.2.0/include", "${lib_path}/gcc/${gcc_target_triple}/9.2.0/include/c++", "${lib_path}/gcc/${gcc_target_triple}/9.2.0/include/c++/${gcc_target_triple}", ] + } else { + include_dirs += [ + "${lib_path}/gcc/${gcc_target_triple}/14.2.0/include", + "${lib_path}/gcc/${gcc_target_triple}/14.2.0/include/c++", + "${lib_path}/gcc/${gcc_target_triple}/14.2.0/include/c++/${gcc_target_triple}", + ] } libs = [ "stdc++" ] diff --git a/flutter/shell/platform/tizen/BUILD.gn b/flutter/shell/platform/tizen/BUILD.gn index 3d9dfd0..8d5825b 100644 --- a/flutter/shell/platform/tizen/BUILD.gn +++ b/flutter/shell/platform/tizen/BUILD.gn @@ -140,6 +140,28 @@ template("embedder") { ] } + # Convert version string "6.0", "6.5", etc. to integer 60, 65, etc. + api_version_numeric = 60 + if (api_version == "6.0") { + api_version_numeric = "60" + } else if (api_version == "6.5") { + api_version_numeric = "65" + } else if (api_version == "7.0") { + api_version_numeric = "70" + } else if (api_version == "8.0") { + api_version_numeric = "80" + } else if (api_version == "9.0") { + api_version_numeric = "90" + } else if (api_version == "10.0") { + api_version_numeric = "100" + } else if (api_version == "11.0") { + api_version_numeric = "110" + } + + defines += [ + "TIZEN_API_VERSION_NUM=$api_version_numeric", + ] + defines += invoker.defines defines += [ "FLUTTER_ENGINE_NO_PROTOTYPES" ] diff --git a/flutter/shell/platform/tizen/flutter_tizen_nui.cc b/flutter/shell/platform/tizen/flutter_tizen_nui.cc index 32787e0..c975849 100644 --- a/flutter/shell/platform/tizen/flutter_tizen_nui.cc +++ b/flutter/shell/platform/tizen/flutter_tizen_nui.cc @@ -5,7 +5,11 @@ #include "public/flutter_tizen.h" #include +#if TIZEN_API_VERSION_NUM >= 110 +#include +#else #include +#endif #include @@ -36,7 +40,11 @@ FlutterDesktopViewRef FlutterDesktopViewCreateFromImageView( std::make_unique( view_properties.width, view_properties.height, reinterpret_cast(image_view), +#if TIZEN_API_VERSION_NUM >= 110 + reinterpret_cast(native_image_queue), +#else reinterpret_cast(native_image_queue), +#endif default_window_id); auto view = std::make_unique( diff --git a/flutter/shell/platform/tizen/tizen_renderer_egl.cc b/flutter/shell/platform/tizen/tizen_renderer_egl.cc index d618943..8514128 100644 --- a/flutter/shell/platform/tizen/tizen_renderer_egl.cc +++ b/flutter/shell/platform/tizen/tizen_renderer_egl.cc @@ -9,8 +9,12 @@ #include #include #ifdef NUI_SUPPORT +#if TIZEN_API_VERSION_NUM >= 110 +#include +#else #include #endif +#endif #include #include #include @@ -101,6 +105,13 @@ bool TizenRendererEgl::CreateSurface(void* render_target, reinterpret_cast(egl_window), attribs); } else { #ifdef NUI_SUPPORT +#if TIZEN_API_VERSION_NUM >= 110 + Dali::NativeImageQueuePtr dali_native_image_queue = + static_cast(render_target); + tbm_surface_queue_h tbm_surface_queue_ = + Dali::AnyCast( + dali_native_image_queue->GetNativeImageQueue()); +#else Dali::NativeImageSourceQueuePtr dali_native_image_queue = static_cast(render_target); tbm_surface_queue_h tbm_surface_queue_ = @@ -109,6 +120,7 @@ bool TizenRendererEgl::CreateSurface(void* render_target, egl_surface_ = eglCreateWindowSurface( egl_display_, egl_config_, reinterpret_cast(tbm_surface_queue_), attribs); +#endif #endif } diff --git a/flutter/shell/platform/tizen/tizen_view_nui.cc b/flutter/shell/platform/tizen/tizen_view_nui.cc index f3b9347..fe88018 100644 --- a/flutter/shell/platform/tizen/tizen_view_nui.cc +++ b/flutter/shell/platform/tizen/tizen_view_nui.cc @@ -16,7 +16,11 @@ namespace flutter { TizenViewNui::TizenViewNui(int32_t width, int32_t height, Dali::Toolkit::ImageView* image_view, +#if TIZEN_API_VERSION_NUM >= 110 + Dali::NativeImageQueuePtr native_image_queue, +#else Dali::NativeImageSourceQueuePtr native_image_queue, +#endif int32_t default_window_id) : TizenView(width, height), image_view_(image_view), diff --git a/flutter/shell/platform/tizen/tizen_view_nui.h b/flutter/shell/platform/tizen/tizen_view_nui.h index 8efc960..cbd0c46 100644 --- a/flutter/shell/platform/tizen/tizen_view_nui.h +++ b/flutter/shell/platform/tizen/tizen_view_nui.h @@ -7,7 +7,11 @@ #include #include +#if TIZEN_API_VERSION_NUM >= 110 +#include +#else #include +#endif #include #include @@ -21,7 +25,11 @@ class TizenViewNui : public TizenView { TizenViewNui(int32_t width, int32_t height, Dali::Toolkit::ImageView* image_view, +#if TIZEN_API_VERSION_NUM >= 110 + Dali::NativeImageQueuePtr native_image_queue, +#else Dali::NativeImageSourceQueuePtr native_image_queue, +#endif int32_t default_window_id); ~TizenViewNui(); @@ -67,7 +75,11 @@ class TizenViewNui : public TizenView { void RenderOnce(); Dali::Toolkit::ImageView* image_view_ = nullptr; +#if TIZEN_API_VERSION_NUM >= 110 + Dali::NativeImageQueuePtr native_image_queue_; +#else Dali::NativeImageSourceQueuePtr native_image_queue_; +#endif int32_t default_window_id_; std::unique_ptr rendering_callback_; }; From 4edb0072a9e93fbf447980add0ab5868a2885f37 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Fri, 13 Mar 2026 15:42:54 +0900 Subject: [PATCH 5/7] Fix format --- build/config/BUILD.gn | 3 ++- flutter/shell/platform/tizen/BUILD.gn | 4 +--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/build/config/BUILD.gn b/build/config/BUILD.gn index 1fbe4a0..170c10b 100644 --- a/build/config/BUILD.gn +++ b/build/config/BUILD.gn @@ -138,7 +138,8 @@ config("system_cxx") { } include_dirs = [] - if (api_version == "6.0" || api_version == "6.5" || api_version == "7.0" || api_version == "8.0" || api_version == "9.0") { + if (api_version == "6.0" || api_version == "6.5" || api_version == "7.0" || + api_version == "8.0" || api_version == "9.0") { include_dirs += [ "${lib_path}/gcc/${gcc_target_triple}/9.2.0/include", "${lib_path}/gcc/${gcc_target_triple}/9.2.0/include/c++", diff --git a/flutter/shell/platform/tizen/BUILD.gn b/flutter/shell/platform/tizen/BUILD.gn index 8d5825b..6adb89b 100644 --- a/flutter/shell/platform/tizen/BUILD.gn +++ b/flutter/shell/platform/tizen/BUILD.gn @@ -158,9 +158,7 @@ template("embedder") { api_version_numeric = "110" } - defines += [ - "TIZEN_API_VERSION_NUM=$api_version_numeric", - ] + defines += [ "TIZEN_API_VERSION_NUM=$api_version_numeric" ] defines += invoker.defines defines += [ "FLUTTER_ENGINE_NO_PROTOTYPES" ] From 908ed95d298018d5db586f925bd9bc948aebdde2 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Fri, 13 Mar 2026 16:01:02 +0900 Subject: [PATCH 6/7] add missing code --- flutter/shell/platform/tizen/BUILD.gn | 16 +++++++--------- .../shell/platform/tizen/tizen_renderer_egl.cc | 3 +++ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/flutter/shell/platform/tizen/BUILD.gn b/flutter/shell/platform/tizen/BUILD.gn index 6adb89b..7e05628 100644 --- a/flutter/shell/platform/tizen/BUILD.gn +++ b/flutter/shell/platform/tizen/BUILD.gn @@ -142,20 +142,18 @@ template("embedder") { # Convert version string "6.0", "6.5", etc. to integer 60, 65, etc. api_version_numeric = 60 - if (api_version == "6.0") { - api_version_numeric = "60" - } else if (api_version == "6.5") { - api_version_numeric = "65" + if (api_version == "6.5") { + api_version_numeric = 65 } else if (api_version == "7.0") { - api_version_numeric = "70" + api_version_numeric = 70 } else if (api_version == "8.0") { - api_version_numeric = "80" + api_version_numeric = 80 } else if (api_version == "9.0") { - api_version_numeric = "90" + api_version_numeric = 90 } else if (api_version == "10.0") { - api_version_numeric = "100" + api_version_numeric = 100 } else if (api_version == "11.0") { - api_version_numeric = "110" + api_version_numeric = 110 } defines += [ "TIZEN_API_VERSION_NUM=$api_version_numeric" ] diff --git a/flutter/shell/platform/tizen/tizen_renderer_egl.cc b/flutter/shell/platform/tizen/tizen_renderer_egl.cc index 8514128..35a4c7f 100644 --- a/flutter/shell/platform/tizen/tizen_renderer_egl.cc +++ b/flutter/shell/platform/tizen/tizen_renderer_egl.cc @@ -111,6 +111,9 @@ bool TizenRendererEgl::CreateSurface(void* render_target, tbm_surface_queue_h tbm_surface_queue_ = Dali::AnyCast( dali_native_image_queue->GetNativeImageQueue()); + egl_surface_ = eglCreateWindowSurface( + egl_display_, egl_config_, + reinterpret_cast(tbm_surface_queue_), attribs); #else Dali::NativeImageSourceQueuePtr dali_native_image_queue = static_cast(render_target); From 325e5ff35f1a3e7859cc22446df90e56913c0f59 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Fri, 13 Mar 2026 16:02:47 +0900 Subject: [PATCH 7/7] ++ --- flutter/shell/platform/tizen/tizen_renderer_egl.cc | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/flutter/shell/platform/tizen/tizen_renderer_egl.cc b/flutter/shell/platform/tizen/tizen_renderer_egl.cc index 35a4c7f..d528fa8 100644 --- a/flutter/shell/platform/tizen/tizen_renderer_egl.cc +++ b/flutter/shell/platform/tizen/tizen_renderer_egl.cc @@ -111,19 +111,16 @@ bool TizenRendererEgl::CreateSurface(void* render_target, tbm_surface_queue_h tbm_surface_queue_ = Dali::AnyCast( dali_native_image_queue->GetNativeImageQueue()); - egl_surface_ = eglCreateWindowSurface( - egl_display_, egl_config_, - reinterpret_cast(tbm_surface_queue_), attribs); #else Dali::NativeImageSourceQueuePtr dali_native_image_queue = static_cast(render_target); tbm_surface_queue_h tbm_surface_queue_ = Dali::AnyCast( dali_native_image_queue->GetNativeImageSourceQueue()); +#endif egl_surface_ = eglCreateWindowSurface( egl_display_, egl_config_, reinterpret_cast(tbm_surface_queue_), attribs); -#endif #endif }