# Copyright (c) 2021 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. declare_args() { graphic_2d_feature_product = "default" graphic_2d_feature_enable_pgo = false graphic_2d_feature_pgo_path = "" graphic_2d_feature_bootanimation_enable = true graphic_2d_feature_ace_enable_gpu = true graphic_2d_feature_color_gamut_enable = false graphic_2d_feature_rs_enable_eglimage = false graphic_2d_feature_rs_enable_profiler = true graphic_2d_feature_use_texgine = false graphic_2d_feature_rs_enable_uni_render = false graphic_2d_feature_wuji_enable = false graphic_2d_feature_enable_afbc = false graphic_2d_feature_freemem_enable = false graphic_2d_feature_parallel_render_enable = true graphic_2d_feature_enable_vulkan = false graphic_2d_feature_enable_flutter_vulkan = false graphic_2d_feature_enable_opengl = true graphic_2d_feature_enable_ddgr = false graphic_2d_feature_enable_opinc = false graphic_2d_feature_enable_filter_cache = true graphic_2d_feature_parallel_upload_enable = true enable_text_gine = true use_texgine = false use_skia_txt = true use_video_processing_engine = false logger_enable_scope = false texgine_enable_debug_log = false player_framework_enable = true graphic_2d_feature_drivers_interface_display_enable = true graphic_2d_feature_tp_switch_enbale = false graphic_2d_feature_enable_recording_dcl = true graphic_2d_feature_use_igraphics_extend_hooks = false if (defined(is_arkui_x) && is_arkui_x) { use_new_render_context = false is_cross_platform = true } else { is_cross_platform = false use_new_render_context = false } } declare_args() { graphic_2d_feature_enable_stack_culling = false } if (graphic_2d_feature_product == "phone" || graphic_2d_feature_product == "tablet") { graphic_2d_feature_enable_vulkan = true graphic_2d_feature_enable_ddgr = false graphic_2d_feature_enable_stack_culling = true graphic_2d_feature_enable_opinc = false } gpu_defines = [] accessibility_defines = [] if (enable_text_gine) { gpu_defines += [ "USE_GRAPHIC_TEXT_GINE" ] } if (graphic_2d_feature_ace_enable_gpu) { if (graphic_2d_feature_enable_flutter_vulkan) { gpu_defines += [ "RS_ENABLE_OLD_VK" ] } if (graphic_2d_feature_enable_vulkan) { gpu_defines += [ "ACE_ENABLE_VK", "RS_ENABLE_VK", ] if (graphic_2d_feature_enable_ddgr) { gpu_defines += [ "ENABLE_DDGR_OPTIMIZE" ] import("//foundation/graphic/graphic_2d_ext/ddgr/config.gni") } } if (graphic_2d_feature_enable_opengl) { gpu_defines += [ "ACE_ENABLE_GL", "RS_ENABLE_GL", ] } if (graphic_2d_feature_enable_stack_culling) { gpu_defines += [ "RS_ENABLE_STACK_CULLING" ] } if (graphic_2d_feature_enable_opinc) { import("//foundation/graphic/graphic_2d_ext/opinc/config.gni") gpu_defines += [ "DDGR_ENABLE_FEATURE_OPINC" ] } if (graphic_2d_feature_enable_recording_dcl) { rs_enable_recording_dcl = true gpu_defines += [ "ENABLE_RECORDING_DCL" ] } else { rs_enable_recording_dcl = false } ace_enable_gpu = true rs_enable_gpu = true surface_enable_gpu = true # libgl is a native stub for decoupling system.img and vendor.img # real libgl installed in /vendor/lib/chipsetsdk libgl = [ "//foundation/graphic/graphic_2d/frameworks/opengl_wrapper:EGL", "//foundation/graphic/graphic_2d/frameworks/opengl_wrapper:GLESv3", ] libvulkan = [] if (graphic_2d_feature_enable_vulkan) { libvulkan += [ "//third_party/vulkan-loader:vulkan_loader" ] } } else { gpu_defines = [ "ACE_DISABLE_GL" ] ace_enable_gpu = false rs_enable_gpu = false surface_enable_gpu = false libgl = [] libvulkan = [] } if (graphic_2d_feature_parallel_upload_enable && graphic_2d_feature_rs_enable_uni_render) { rs_enable_parallel_upload = true gpu_defines += [ "RS_ENABLE_PARALLEL_UPLOAD" ] } else { rs_enable_parallel_upload = false } if (graphic_2d_feature_rs_enable_eglimage || current_os == "android") { gpu_defines += [ "RS_ENABLE_EGLIMAGE", "RS_ENABLE_EGLQUERYSURFACE", ] rs_enable_eglimage = true } else { gpu_defines += [ "RS_DISABLE_EGLIMAGE" ] rs_enable_eglimage = false } # use_texgine = graphic_2d_feature_use_texgine if (graphic_2d_feature_rs_enable_uni_render) { rs_enable_driven_render = true graphic_2d_feature_enable_dvsync = true gpu_defines += [ "RS_ENABLE_DRIVEN_RENDER", "RS_ENABLE_UNI_RENDER", ] } else { rs_enable_driven_render = false graphic_2d_feature_enable_dvsync = false } if (graphic_2d_feature_enable_afbc) { gpu_defines += [ "RS_ENABLE_AFBC" ] } if (graphic_2d_feature_parallel_render_enable) { rs_enable_parallel_render = true gpu_defines += [ "RS_ENABLE_PARALLEL_RENDER" ] } if (defined(use_new_render_context) && use_new_render_context) { rs_enable_parallel_render = false gpu_defines -= [ "RS_ENABLE_PARALLEL_RENDER" ] } if (graphic_2d_feature_enable_dvsync) { gpu_defines += [ "RS_ENABLE_DVSYNC" ] } tp_defines = [] tp_feature_enable = false if (graphic_2d_feature_tp_switch_enbale) { tp_feature_enable = true tp_defines = [ "TP_FEATURE_ENABLE" ] } graphic_2d_ext_configs = { } check_graphic_ext_file_script = "//build/ohos/file_exists.py" check_graphic_ext_file_args = [ "--filename", rebase_path("//foundation/graphic/graphic_2d_ext/ohcore/build/config.gni"), ] check_ddgr_ext_file_args = [ "--filename", rebase_path("//foundation/graphic/graphic_2d_ext/ddgr/ddgr_config.gni"), ] check_igraphics_core_file_args = [ "--filename", rebase_path( "//vendor/huawei/foundation/graphics_game/gpu_turbo_x/EGL/config.gni"), ] check_delegator_ext_file_args = [ "--filename", rebase_path("//foundation/graphic/graphic_2d_ext/delegator/config.gni"), ] check_broker_ext_file_args = [ "--filename", rebase_path( "//foundation/graphic/graphic_2d_ext/ohcore/build/broker_config.gni"), ] if (exec_script(check_graphic_ext_file_script, check_graphic_ext_file_args, "string") == "True" && "${product_name}" == "ohcore") { graphic_2d_ext_configs = { import("//foundation/graphic/graphic_2d_ext/ohcore/build/config.gni") } } if (exec_script(check_graphic_ext_file_script, check_ddgr_ext_file_args, "string") == "True") { ddgr_ext_configs = { import("//foundation/graphic/graphic_2d_ext/ddgr/ddgr_config.gni") } } if (exec_script(check_graphic_ext_file_script, check_igraphics_core_file_args, "string") == "True") { graphic_2d_feature_use_igraphics_extend_hooks = true import("//vendor/huawei/foundation/graphics_game/gpu_turbo_x/EGL/config.gni") } graphic_2d_delegator_configs = { } if (exec_script(check_graphic_ext_file_script, check_delegator_ext_file_args, "string") == "True") { graphic_2d_delegator_configs = { import("//foundation/graphic/graphic_2d_ext/delegator/config.gni") } } graphic_2d_broker_configs = { } if (exec_script(check_graphic_ext_file_script, check_broker_ext_file_args, "string") == "True") { graphic_2d_broker_configs = { import("//foundation/graphic/graphic_2d_ext/ohcore/build/broker_config.gni") } } check_platform_ext_file_args = [ "--filename", rebase_path("//foundation/graphic/graphic_2d_ext/platform/config.gni"), ] graphic_2d_platform_configs = { } if (exec_script(check_graphic_ext_file_script, check_platform_ext_file_args, "string") == "True") { graphic_2d_platform_configs = { import("//foundation/graphic/graphic_2d_ext/platform/config.gni") } } flutter_root = "//third_party/flutter" ace_flutter_engine_root = "$flutter_root/build" graphic_2d_root = "//foundation/graphic/graphic_2d" graphic_2d_ext_root = "//foundation/graphic/graphic_2d_ext" hilog_root = "//base/hiviewdfx/hilog" window_base_path = "//foundation/window/window_manager" safwk_base = "//foundation/systemabilitymgr/safwk" skia_root_new = "//third_party/skia" graphic_surface_root = "//foundation/graphic/graphic_surface" memmgr_root = "//foundation/resourceschedule/memmgr" memmgr_plugin_root = "//foundation/resourceschedule/memmgr_plugin" fuzz_test_output_path = "graphic_2d/graphic_2d" video_processing_engine_root = "//foundation/multimedia/video_processing_engine" arkui_root = "//foundation/arkui" accessibility_enable = false if (defined(global_parts_info) && defined(global_parts_info.barrierfree_accessibility)) { accessibility_enable = true accessibility_defines = [ "ACCESSIBILITY_ENABLE" ] } if (defined(global_parts_info) && !defined(global_parts_info.multimedia_player_framework)) { player_framework_enable = false } if (defined(global_parts_info) && defined(global_parts_info.multimedia_video_processing_engine)) { use_video_processing_engine = true } if (defined(global_parts_info) && !defined(global_parts_info.hdf_drivers_interface_display)) { graphic_2d_feature_drivers_interface_display_enable = false } use_memmgr_plugin = false if (defined(global_parts_info.resourceschedule_memmgr_plugin)) { use_memmgr_plugin = true } use_memmgr = false if (defined(global_parts_info.resourceschedule_memmgr)) { use_memmgr = true }