From 0b77659136c009bfd0e02d7cb91f9108e4c3b05f Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 8 May 2025 16:46:40 +0900 Subject: [PATCH] infra: added opengl_es extra option for explicit selection usages: meson setup build -Dengines="gl" //opengl meson setup build -Dengines="gl" -Dextra="opengl_es" //opengl es --- examples/meson.build | 2 +- meson.build | 19 +++++++++++++---- meson_options.txt | 4 ++-- src/renderer/gl_engine/meson.build | 34 ++++++------------------------ src/renderer/gl_engine/tvgGl.cpp | 0 src/renderer/gl_engine/tvgGl.h | 0 6 files changed, 25 insertions(+), 34 deletions(-) mode change 100755 => 100644 src/renderer/gl_engine/tvgGl.cpp mode change 100755 => 100644 src/renderer/gl_engine/tvgGl.h diff --git a/examples/meson.build b/examples/meson.build index d632725a..1ce086ed 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -4,7 +4,7 @@ if lib_type == 'static' examples_compiler_flags += ['-DTVG_STATIC'] endif -if target_opengles +if gl_variant == 'OpenGL ES' examples_compiler_flags += '-DTHORVG_GL_TARGET_GLES=1' endif diff --git a/meson.build b/meson.build index c1181da4..66ebf520 100644 --- a/meson.build +++ b/meson.build @@ -132,6 +132,18 @@ if lottie_expressions config_h.set10('THORVG_LOTTIE_EXPRESSIONS_SUPPORT', true) endif +gl_variant = '' + +if gl_engine + if get_option('extra').contains('opengl_es') + gl_variant = 'OpenGL ES' + else + gl_variant = 'OpenGL' + endif +else + gl_variant = 'None' +endif + #Miscellaneous config_h.set10('WIN32_LEAN_AND_MEAN', true) @@ -142,9 +154,6 @@ configure_file( headers = [include_directories('inc'), include_directories('.')] -#OpenGL profile: OpenGLES(true) or OpenGL(false), confirmed by gl_engine -target_opengles = false - subdir('inc') subdir('src') subdir('tools') @@ -183,6 +192,7 @@ Summary: Tool (Svg2Png): @20@ Tool (Lottie2Gif): @21@ Extra (Lottie Expressions): @22@ + Extra (OpenGL Variant): @23@ '''.format( meson.project_version(), @@ -207,7 +217,8 @@ Summary: get_option('examples'), svg2png, lottie2gif, - lottie_expressions + lottie_expressions, + gl_variant ) message(summary) diff --git a/meson_options.txt b/meson_options.txt index 0d63cf9f..c143c3bf 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -65,6 +65,6 @@ option('file', option('extra', type: 'array', - choices: ['', 'lottie_expressions'], + choices: ['', 'opengl_es', 'lottie_expressions'], value: ['lottie_expressions'], - description: '"Enable support for exceptionally advanced features') + description: '"Enable support for extra options') diff --git a/src/renderer/gl_engine/meson.build b/src/renderer/gl_engine/meson.build index 873b7f44..2ca77f84 100644 --- a/src/renderer/gl_engine/meson.build +++ b/src/renderer/gl_engine/meson.build @@ -24,39 +24,19 @@ source_file = [ 'tvgGlTessellator.h', ] -if host_machine.system() == 'darwin' - gl_dep = declare_dependency(link_args: ['-framework', 'OpenGL']) - compiler_flags += ['-Wno-deprecated'] #for deprecated opengl -elif cc.get_id() == 'emscripten' - target_opengles = true - gl_dep = dependency('GLESv3', required: false) -else - #find a opengl library with fallbacks - gl_dep = dependency('GL', required: false) - - if not gl_dep.found() - gl_dep = meson.get_compiler('cpp').find_library('GL', required: false) - endif - - if not gl_dep.found() - gl_dep = dependency('GLESv3', required: false) - target_opengles = true - endif - - if not gl_dep.found() - gl_dep = meson.get_compiler('cpp').find_library('GLESv3') - target_opengles = true - endif +#force to use gles +if cc.get_id() == 'emscripten' + gl_variant = 'OpenGL ES' endif -if target_opengles - gl_target_profile = '-DTHORVG_GL_TARGET_GLES=1' +if gl_variant == 'OpenGL ES' + gl_variant_profile = '-DTHORVG_GL_TARGET_GLES=1' else - gl_target_profile = '-DTHORVG_GL_TARGET_GL=1' + gl_variant_profile = '-DTHORVG_GL_TARGET_GL=1' endif engine_dep += [declare_dependency( - compile_args : gl_target_profile, + compile_args : gl_variant_profile, include_directories : include_directories('.'), sources : source_file, )] diff --git a/src/renderer/gl_engine/tvgGl.cpp b/src/renderer/gl_engine/tvgGl.cpp old mode 100755 new mode 100644 diff --git a/src/renderer/gl_engine/tvgGl.h b/src/renderer/gl_engine/tvgGl.h old mode 100755 new mode 100644