summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/android_builds.yml2
-rw-r--r--.github/workflows/godot_cpp_test.yml4
-rw-r--r--.github/workflows/ios_builds.yml2
-rw-r--r--.github/workflows/linux_builds.yml4
-rw-r--r--.github/workflows/macos_builds.yml2
-rw-r--r--.github/workflows/static_checks.yml2
-rw-r--r--.github/workflows/web_builds.yml2
-rw-r--r--.github/workflows/windows_builds.yml2
-rw-r--r--editor/editor_fonts.cpp8
-rw-r--r--main/main.cpp21
-rw-r--r--modules/navigation/godot_navigation_server.h4
-rw-r--r--modules/text_server_adv/text_server_adv.cpp6
-rw-r--r--modules/text_server_fb/text_server_fb.cpp6
-rw-r--r--scene/resources/animation.cpp24
-rw-r--r--scene/resources/font.cpp12
-rw-r--r--scene/resources/shader.cpp6
-rw-r--r--scene/resources/shader_include.cpp6
-rw-r--r--scene/theme/theme_db.cpp12
-rw-r--r--scene/theme/theme_db.h1
-rw-r--r--tests/scene/test_viewport.h16
-rw-r--r--tests/scene/test_window.h6
-rw-r--r--tests/servers/test_text_server.h6
-rw-r--r--tests/test_main.cpp17
-rw-r--r--thirdparty/README.md65
-rw-r--r--thirdparty/fonts/JetBrainsMono_Regular.woff2bin69168 -> 92392 bytes
-rw-r--r--thirdparty/fonts/NotoNaskhArabicUI_Bold.woff2bin57612 -> 53860 bytes
-rw-r--r--thirdparty/fonts/NotoNaskhArabicUI_Regular.woff2bin57340 -> 53352 bytes
-rw-r--r--thirdparty/fonts/NotoSansBengaliUI_Bold.woff2bin44496 -> 47704 bytes
-rw-r--r--thirdparty/fonts/NotoSansBengaliUI_Regular.woff2bin43568 -> 47000 bytes
-rw-r--r--thirdparty/fonts/NotoSansDevanagariUI_Bold.woff2bin44084 -> 52216 bytes
-rw-r--r--thirdparty/fonts/NotoSansDevanagariUI_Regular.woff2bin43724 -> 51880 bytes
-rw-r--r--thirdparty/fonts/NotoSansGeorgian_Bold.woff2bin11660 -> 24032 bytes
-rw-r--r--thirdparty/fonts/NotoSansGeorgian_Regular.woff2bin11340 -> 23360 bytes
-rw-r--r--thirdparty/fonts/NotoSansHebrew_Bold.woff2bin6692 -> 6216 bytes
-rw-r--r--thirdparty/fonts/NotoSansHebrew_Regular.woff2bin6680 -> 6200 bytes
-rw-r--r--thirdparty/fonts/NotoSansMalayalamUI_Bold.woff2bin22736 -> 26968 bytes
-rw-r--r--thirdparty/fonts/NotoSansMalayalamUI_Regular.woff2bin23080 -> 26952 bytes
-rw-r--r--thirdparty/fonts/NotoSansOriyaUI_Bold.woff2bin36520 -> 0 bytes
-rw-r--r--thirdparty/fonts/NotoSansOriyaUI_Regular.woff2bin36020 -> 0 bytes
-rw-r--r--thirdparty/fonts/NotoSansOriya_Bold.woff2bin0 -> 37124 bytes
-rw-r--r--thirdparty/fonts/NotoSansOriya_Regular.woff2bin0 -> 36084 bytes
-rw-r--r--thirdparty/fonts/NotoSansSinhalaUI_Bold.woff2bin40128 -> 40952 bytes
-rw-r--r--thirdparty/fonts/NotoSansSinhalaUI_Regular.woff2bin40124 -> 40672 bytes
-rw-r--r--thirdparty/fonts/NotoSansTamilUI_Bold.woff2bin17400 -> 17848 bytes
-rw-r--r--thirdparty/fonts/NotoSansTamilUI_Regular.woff2bin17160 -> 17600 bytes
-rw-r--r--thirdparty/fonts/NotoSansTeluguUI_Bold.woff2bin37228 -> 46740 bytes
-rw-r--r--thirdparty/fonts/NotoSansTeluguUI_Regular.woff2bin36816 -> 44460 bytes
-rw-r--r--thirdparty/fonts/NotoSansThaiUI_Bold.woff2bin9420 -> 0 bytes
-rw-r--r--thirdparty/fonts/NotoSansThaiUI_Regular.woff2bin9468 -> 0 bytes
-rw-r--r--thirdparty/fonts/NotoSansThai_Bold.woff2bin0 -> 8948 bytes
-rw-r--r--thirdparty/fonts/NotoSansThai_Regular.woff2bin0 -> 9028 bytes
-rw-r--r--thirdparty/fonts/NotoSans_Bold.woff2bin115376 -> 146300 bytes
-rw-r--r--thirdparty/fonts/NotoSans_Regular.woff2bin117840 -> 148480 bytes
53 files changed, 148 insertions, 88 deletions
diff --git a/.github/workflows/android_builds.yml b/.github/workflows/android_builds.yml
index afc73a462f..ea97ef023d 100644
--- a/.github/workflows/android_builds.yml
+++ b/.github/workflows/android_builds.yml
@@ -18,7 +18,7 @@ jobs:
name: Template (target=template_release)
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Set up Java 11
uses: actions/setup-java@v3
diff --git a/.github/workflows/godot_cpp_test.yml b/.github/workflows/godot_cpp_test.yml
index 5384197f37..dccc853550 100644
--- a/.github/workflows/godot_cpp_test.yml
+++ b/.github/workflows/godot_cpp_test.yml
@@ -18,14 +18,14 @@ jobs:
runs-on: "ubuntu-20.04"
name: "Build and test Godot CPP"
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Setup python and scons
uses: ./.github/actions/godot-deps
# Checkout godot-cpp
- name: Checkout godot-cpp
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
repository: godotengine/godot-cpp
ref: ${{ env.GODOT_CPP_BRANCH }}
diff --git a/.github/workflows/ios_builds.yml b/.github/workflows/ios_builds.yml
index 63ecabd957..6557120d87 100644
--- a/.github/workflows/ios_builds.yml
+++ b/.github/workflows/ios_builds.yml
@@ -18,7 +18,7 @@ jobs:
name: Template (target=template_release)
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Setup Godot build cache
uses: ./.github/actions/godot-cache
diff --git a/.github/workflows/linux_builds.yml b/.github/workflows/linux_builds.yml
index 01f2404866..fc0db1fbd6 100644
--- a/.github/workflows/linux_builds.yml
+++ b/.github/workflows/linux_builds.yml
@@ -85,7 +85,7 @@ jobs:
artifact: true
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
# Need newer mesa for lavapipe to work properly.
- name: Linux dependencies for tests
@@ -111,7 +111,7 @@ jobs:
uses: ./.github/actions/godot-deps
- name: Set up .NET Sdk
- uses: actions/setup-dotnet@v2
+ uses: actions/setup-dotnet@v3
if: ${{ matrix.build-mono }}
with:
dotnet-version: '6.0.x'
diff --git a/.github/workflows/macos_builds.yml b/.github/workflows/macos_builds.yml
index ae6f452bc2..1e39aceeb8 100644
--- a/.github/workflows/macos_builds.yml
+++ b/.github/workflows/macos_builds.yml
@@ -33,7 +33,7 @@ jobs:
sconsflags: debug_symbols=no
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Setup Godot build cache
uses: ./.github/actions/godot-cache
diff --git a/.github/workflows/static_checks.yml b/.github/workflows/static_checks.yml
index c096c63f9b..4b7f721a23 100644
--- a/.github/workflows/static_checks.yml
+++ b/.github/workflows/static_checks.yml
@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 2
diff --git a/.github/workflows/web_builds.yml b/.github/workflows/web_builds.yml
index 2ae238caa6..47baf3d065 100644
--- a/.github/workflows/web_builds.yml
+++ b/.github/workflows/web_builds.yml
@@ -20,7 +20,7 @@ jobs:
name: Template (target=template_release)
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Set up Emscripten latest
uses: mymindstorm/setup-emsdk@v12
diff --git a/.github/workflows/windows_builds.yml b/.github/workflows/windows_builds.yml
index ab62dca5cb..14f2992848 100644
--- a/.github/workflows/windows_builds.yml
+++ b/.github/workflows/windows_builds.yml
@@ -38,7 +38,7 @@ jobs:
sconsflags: debug_symbols=no
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Setup Godot build cache
uses: ./.github/actions/godot-cache
diff --git a/editor/editor_fonts.cpp b/editor/editor_fonts.cpp
index bc8bcb1134..b7b57a5f1f 100644
--- a/editor/editor_fonts.cpp
+++ b/editor/editor_fonts.cpp
@@ -157,11 +157,11 @@ void editor_register_fonts(Ref<Theme> p_theme) {
Ref<FontFile> georgian_font = load_internal_font(_font_NotoSansGeorgian_Regular, _font_NotoSansGeorgian_Regular_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks);
Ref<FontFile> hebrew_font = load_internal_font(_font_NotoSansHebrew_Regular, _font_NotoSansHebrew_Regular_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks);
Ref<FontFile> malayalam_font = load_internal_font(_font_NotoSansMalayalamUI_Regular, _font_NotoSansMalayalamUI_Regular_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks);
- Ref<FontFile> oriya_font = load_internal_font(_font_NotoSansOriyaUI_Regular, _font_NotoSansOriyaUI_Regular_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks);
+ Ref<FontFile> oriya_font = load_internal_font(_font_NotoSansOriya_Regular, _font_NotoSansOriya_Regular_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks);
Ref<FontFile> sinhala_font = load_internal_font(_font_NotoSansSinhalaUI_Regular, _font_NotoSansSinhalaUI_Regular_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks);
Ref<FontFile> tamil_font = load_internal_font(_font_NotoSansTamilUI_Regular, _font_NotoSansTamilUI_Regular_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks);
Ref<FontFile> telugu_font = load_internal_font(_font_NotoSansTeluguUI_Regular, _font_NotoSansTeluguUI_Regular_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks);
- Ref<FontFile> thai_font = load_internal_font(_font_NotoSansThaiUI_Regular, _font_NotoSansThaiUI_Regular_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks);
+ Ref<FontFile> thai_font = load_internal_font(_font_NotoSansThai_Regular, _font_NotoSansThai_Regular_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks);
Ref<FontFile> fallback_font = load_internal_font(_font_DroidSansFallback, _font_DroidSansFallback_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks);
Ref<FontFile> japanese_font = load_internal_font(_font_DroidSansJapanese, _font_DroidSansJapanese_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks);
default_font->set_fallbacks(fallbacks);
@@ -177,11 +177,11 @@ void editor_register_fonts(Ref<Theme> p_theme) {
Ref<FontFile> georgian_font_bold = load_internal_font(_font_NotoSansGeorgian_Bold, _font_NotoSansGeorgian_Bold_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks_bold);
Ref<FontFile> hebrew_font_bold = load_internal_font(_font_NotoSansHebrew_Bold, _font_NotoSansHebrew_Bold_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks_bold);
Ref<FontFile> malayalam_font_bold = load_internal_font(_font_NotoSansMalayalamUI_Bold, _font_NotoSansMalayalamUI_Bold_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks_bold);
- Ref<FontFile> oriya_font_bold = load_internal_font(_font_NotoSansOriyaUI_Bold, _font_NotoSansOriyaUI_Bold_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks_bold);
+ Ref<FontFile> oriya_font_bold = load_internal_font(_font_NotoSansOriya_Bold, _font_NotoSansOriya_Bold_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks_bold);
Ref<FontFile> sinhala_font_bold = load_internal_font(_font_NotoSansSinhalaUI_Bold, _font_NotoSansSinhalaUI_Bold_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks_bold);
Ref<FontFile> tamil_font_bold = load_internal_font(_font_NotoSansTamilUI_Bold, _font_NotoSansTamilUI_Bold_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks_bold);
Ref<FontFile> telugu_font_bold = load_internal_font(_font_NotoSansTeluguUI_Bold, _font_NotoSansTeluguUI_Bold_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks_bold);
- Ref<FontFile> thai_font_bold = load_internal_font(_font_NotoSansThaiUI_Bold, _font_NotoSansThaiUI_Bold_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks_bold);
+ Ref<FontFile> thai_font_bold = load_internal_font(_font_NotoSansThai_Bold, _font_NotoSansThai_Bold_size, font_hinting, font_antialiasing, true, font_subpixel_positioning, false, &fallbacks_bold);
Ref<FontVariation> fallback_font_bold = make_bold_font(fallback_font, embolden_strength, &fallbacks_bold);
Ref<FontVariation> japanese_font_bold = make_bold_font(japanese_font, embolden_strength, &fallbacks_bold);
diff --git a/main/main.cpp b/main/main.cpp
index 0a9ebd4c61..7efd503f95 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -570,9 +570,15 @@ Error Main::test_setup() {
ResourceLoader::load_path_remaps();
+ // Initialize ThemeDB early so that scene types can register their theme items.
+ // Default theme will be initialized later, after modules and ScriptServer are ready.
+ initialize_theme_db();
+
register_scene_types();
register_driver_types();
+ register_scene_singletons();
+
initialize_modules(MODULE_INITIALIZATION_LEVEL_SCENE);
GDExtensionManager::get_singleton()->initialize_extensions(GDExtension::INITIALIZATION_LEVEL_SCENE);
@@ -588,9 +594,7 @@ Error Main::test_setup() {
register_platform_apis();
// Theme needs modules to be initialized so that sub-resources can be loaded.
- initialize_theme_db();
- theme_db->initialize_theme();
- register_scene_singletons();
+ theme_db->initialize_theme_noproject();
initialize_navigation_server();
@@ -2561,9 +2565,15 @@ Error Main::setup2() {
OS::get_singleton()->benchmark_begin_measure("scene");
+ // Initialize ThemeDB early so that scene types can register their theme items.
+ // Default theme will be initialized later, after modules and ScriptServer are ready.
+ initialize_theme_db();
+
register_scene_types();
register_driver_types();
+ register_scene_singletons();
+
initialize_modules(MODULE_INITIALIZATION_LEVEL_SCENE);
GDExtensionManager::get_singleton()->initialize_extensions(GDExtension::INITIALIZATION_LEVEL_SCENE);
@@ -2581,11 +2591,6 @@ Error Main::setup2() {
register_platform_apis();
- // Theme needs modules to be initialized so that sub-resources can be loaded.
- // Default theme is initialized later, after ScriptServer is ready.
- initialize_theme_db();
- register_scene_singletons();
-
GLOBAL_DEF_BASIC(PropertyInfo(Variant::STRING, "display/mouse_cursor/custom_image", PROPERTY_HINT_FILE, "*.png,*.webp"), String());
GLOBAL_DEF_BASIC("display/mouse_cursor/custom_image_hotspot", Vector2());
GLOBAL_DEF_BASIC("display/mouse_cursor/tooltip_position_offset", Point2(10, 10));
diff --git a/modules/navigation/godot_navigation_server.h b/modules/navigation/godot_navigation_server.h
index 40893bada6..c12605bc7a 100644
--- a/modules/navigation/godot_navigation_server.h
+++ b/modules/navigation/godot_navigation_server.h
@@ -56,7 +56,9 @@
void MERGE(_cmd_, F_NAME)(T_0 D_0, T_1 D_1)
class GodotNavigationServer;
+#ifndef _3D_DISABLED
class NavMeshGenerator3D;
+#endif // _3D_DISABLED
struct SetCommand {
virtual ~SetCommand() {}
@@ -80,7 +82,9 @@ class GodotNavigationServer : public NavigationServer3D {
LocalVector<NavMap *> active_maps;
LocalVector<uint32_t> active_maps_update_id;
+#ifndef _3D_DISABLED
NavMeshGenerator3D *navmesh_generator_3d = nullptr;
+#endif // _3D_DISABLED
// Performance Monitor
int pm_region_count = 0;
diff --git a/modules/text_server_adv/text_server_adv.cpp b/modules/text_server_adv/text_server_adv.cpp
index cbe48db494..85e98eac76 100644
--- a/modules/text_server_adv/text_server_adv.cpp
+++ b/modules/text_server_adv/text_server_adv.cpp
@@ -2383,10 +2383,8 @@ void TextServerAdvanced::_font_set_variation_coordinates(const RID &p_font_rid,
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
- if (fd->variation_coordinates != p_variation_coordinates) {
- _font_clear_cache(fd);
- fd->variation_coordinates = p_variation_coordinates;
- }
+ _font_clear_cache(fd);
+ fd->variation_coordinates = p_variation_coordinates;
}
Dictionary TextServerAdvanced::_font_get_variation_coordinates(const RID &p_font_rid) const {
diff --git a/modules/text_server_fb/text_server_fb.cpp b/modules/text_server_fb/text_server_fb.cpp
index d0587bf6c0..5d4de7a0d6 100644
--- a/modules/text_server_fb/text_server_fb.cpp
+++ b/modules/text_server_fb/text_server_fb.cpp
@@ -1376,10 +1376,8 @@ void TextServerFallback::_font_set_variation_coordinates(const RID &p_font_rid,
ERR_FAIL_COND(!fd);
MutexLock lock(fd->mutex);
- if (fd->variation_coordinates != p_variation_coordinates) {
- _font_clear_cache(fd);
- fd->variation_coordinates = p_variation_coordinates;
- }
+ _font_clear_cache(fd);
+ fd->variation_coordinates = p_variation_coordinates;
}
Dictionary TextServerFallback::_font_get_variation_coordinates(const RID &p_font_rid) const {
diff --git a/scene/resources/animation.cpp b/scene/resources/animation.cpp
index 860e48a361..c8e3741383 100644
--- a/scene/resources/animation.cpp
+++ b/scene/resources/animation.cpp
@@ -5579,8 +5579,8 @@ Variant Animation::subtract_variant(const Variant &a, const Variant &b) {
Variant Animation::blend_variant(const Variant &a, const Variant &b, float c) {
if (a.get_type() != b.get_type()) {
if (a.is_num() && b.is_num()) {
- real_t va = a;
- real_t vb = b;
+ double va = a;
+ double vb = b;
return va + vb * c;
}
return a;
@@ -5591,7 +5591,7 @@ Variant Animation::blend_variant(const Variant &a, const Variant &b, float c) {
return Variant();
}
case Variant::INT: {
- return int((a.operator int64_t()) + (b.operator int64_t()) * c + 0.5);
+ return int64_t((a.operator int64_t()) + (b.operator int64_t()) * c + 0.5);
}
case Variant::FLOAT: {
return (a.operator double()) + (b.operator double()) * c;
@@ -5664,8 +5664,8 @@ Variant Animation::blend_variant(const Variant &a, const Variant &b, float c) {
Variant Animation::interpolate_variant(const Variant &a, const Variant &b, float c) {
if (a.get_type() != b.get_type()) {
if (a.is_num() && b.is_num()) {
- real_t va = a;
- real_t vb = b;
+ double va = a;
+ double vb = b;
return va + (vb - va) * c;
}
return a;
@@ -5677,11 +5677,11 @@ Variant Animation::interpolate_variant(const Variant &a, const Variant &b, float
}
case Variant::INT: {
const int64_t va = a.operator int64_t();
- return int(va + ((b.operator int64_t()) - va) * c);
+ return int64_t(va + ((b.operator int64_t()) - va) * c);
}
case Variant::FLOAT: {
- const real_t va = a.operator real_t();
- return va + ((b.operator real_t()) - va) * c;
+ const double va = a.operator double();
+ return va + ((b.operator double()) - va) * c;
}
case Variant::VECTOR2: {
return (a.operator Vector2()).lerp(b.operator Vector2(), c);
@@ -5783,7 +5783,7 @@ Variant Animation::interpolate_variant(const Variant &a, const Variant &b, float
case Variant::PACKED_INT32_ARRAY: {
const Vector<int32_t> arr_a = a;
const Vector<int32_t> arr_b = b;
- int32_t sz = arr_a.size();
+ int sz = arr_a.size();
if (sz == 0 || arr_b.size() != sz) {
return a;
} else {
@@ -5795,7 +5795,7 @@ Variant Animation::interpolate_variant(const Variant &a, const Variant &b, float
const int32_t *br = arr_b.ptr();
Variant va;
- for (int32_t i = 0; i < sz; i++) {
+ for (int i = 0; i < sz; i++) {
va = interpolate_variant(ar[i], br[i], c);
vw[i] = va;
}
@@ -5806,7 +5806,7 @@ Variant Animation::interpolate_variant(const Variant &a, const Variant &b, float
case Variant::PACKED_INT64_ARRAY: {
const Vector<int64_t> arr_a = a;
const Vector<int64_t> arr_b = b;
- int64_t sz = arr_a.size();
+ int sz = arr_a.size();
if (sz == 0 || arr_b.size() != sz) {
return a;
} else {
@@ -5818,7 +5818,7 @@ Variant Animation::interpolate_variant(const Variant &a, const Variant &b, float
const int64_t *br = arr_b.ptr();
Variant va;
- for (int64_t i = 0; i < sz; i++) {
+ for (int i = 0; i < sz; i++) {
va = interpolate_variant(ar[i], br[i], c);
vw[i] = va;
}
diff --git a/scene/resources/font.cpp b/scene/resources/font.cpp
index f5edc8d5e9..9d546c90c7 100644
--- a/scene/resources/font.cpp
+++ b/scene/resources/font.cpp
@@ -2833,10 +2833,8 @@ Ref<Font> FontVariation::_get_base_font_or_default() const {
}
void FontVariation::set_variation_opentype(const Dictionary &p_coords) {
- if (variation.opentype != p_coords) {
- variation.opentype = p_coords;
- _invalidate_rids();
- }
+ variation.opentype = p_coords;
+ _invalidate_rids();
}
Dictionary FontVariation::get_variation_opentype() const {
@@ -2877,10 +2875,8 @@ int FontVariation::get_variation_face_index() const {
}
void FontVariation::set_opentype_features(const Dictionary &p_features) {
- if (opentype_features != p_features) {
- opentype_features = p_features;
- _invalidate_rids();
- }
+ opentype_features = p_features;
+ _invalidate_rids();
}
Dictionary FontVariation::get_opentype_features() const {
diff --git a/scene/resources/shader.cpp b/scene/resources/shader.cpp
index 7120b21190..5b375905cc 100644
--- a/scene/resources/shader.cpp
+++ b/scene/resources/shader.cpp
@@ -239,8 +239,10 @@ Ref<Resource> ResourceFormatLoaderShader::load(const String &p_path, const Strin
ERR_FAIL_COND_V_MSG(error, nullptr, "Cannot load shader: " + p_path);
String str;
- error = str.parse_utf8((const char *)buffer.ptr(), buffer.size());
- ERR_FAIL_COND_V_MSG(error, nullptr, "Cannot parse shader: " + p_path);
+ if (buffer.size() > 0) {
+ error = str.parse_utf8((const char *)buffer.ptr(), buffer.size());
+ ERR_FAIL_COND_V_MSG(error, nullptr, "Cannot parse shader: " + p_path);
+ }
Ref<Shader> shader;
shader.instantiate();
diff --git a/scene/resources/shader_include.cpp b/scene/resources/shader_include.cpp
index 323be6e491..0a2a686b4e 100644
--- a/scene/resources/shader_include.cpp
+++ b/scene/resources/shader_include.cpp
@@ -93,8 +93,10 @@ Ref<Resource> ResourceFormatLoaderShaderInclude::load(const String &p_path, cons
ERR_FAIL_COND_V_MSG(error, nullptr, "Cannot load shader include: " + p_path);
String str;
- error = str.parse_utf8((const char *)buffer.ptr(), buffer.size());
- ERR_FAIL_COND_V_MSG(error, nullptr, "Cannot parse shader include: " + p_path);
+ if (buffer.size() > 0) {
+ error = str.parse_utf8((const char *)buffer.ptr(), buffer.size());
+ ERR_FAIL_COND_V_MSG(error, nullptr, "Cannot parse shader include: " + p_path);
+ }
Ref<ShaderInclude> shader_inc;
shader_inc.instantiate();
diff --git a/scene/theme/theme_db.cpp b/scene/theme/theme_db.cpp
index 39a4f078b5..ae2a629c1d 100644
--- a/scene/theme/theme_db.cpp
+++ b/scene/theme/theme_db.cpp
@@ -91,6 +91,18 @@ void ThemeDB::initialize_theme_noproject() {
}
}
+void ThemeDB::finalize_theme() {
+ if (!RenderingServer::get_singleton()) {
+ WARN_PRINT("Finalizing theme when there is no RenderingServer is an error; check the order of operations.");
+ }
+
+ default_theme.unref();
+
+ fallback_font.unref();
+ fallback_icon.unref();
+ fallback_stylebox.unref();
+}
+
// Universal fallback Theme resources.
void ThemeDB::set_default_theme(const Ref<Theme> &p_default) {
diff --git a/scene/theme/theme_db.h b/scene/theme/theme_db.h
index f65899f5ea..f7866cb3ea 100644
--- a/scene/theme/theme_db.h
+++ b/scene/theme/theme_db.h
@@ -61,6 +61,7 @@ protected:
public:
void initialize_theme();
void initialize_theme_noproject();
+ void finalize_theme();
// Universal Theme resources
diff --git a/tests/scene/test_viewport.h b/tests/scene/test_viewport.h
index dd4786977e..0c53668c6d 100644
--- a/tests/scene/test_viewport.h
+++ b/tests/scene/test_viewport.h
@@ -43,8 +43,8 @@
namespace TestViewport {
-class NotificationControl : public Control {
- GDCLASS(NotificationControl, Control);
+class NotificationControlViewport : public Control {
+ GDCLASS(NotificationControlViewport, Control);
protected:
void _notification(int p_what) {
@@ -63,11 +63,11 @@ public:
bool mouse_over = false;
};
-// `NotificationControl`-derived class that additionally
+// `NotificationControlViewport`-derived class that additionally
// - allows start Dragging
// - stores mouse information of last event
-class DragStart : public NotificationControl {
- GDCLASS(DragStart, NotificationControl);
+class DragStart : public NotificationControlViewport {
+ GDCLASS(DragStart, NotificationControlViewport);
public:
MouseButton last_mouse_button;
@@ -93,9 +93,9 @@ public:
}
};
-// `NotificationControl`-derived class that acts as a Drag and Drop target.
-class DragTarget : public NotificationControl {
- GDCLASS(DragTarget, NotificationControl);
+// `NotificationControlViewport`-derived class that acts as a Drag and Drop target.
+class DragTarget : public NotificationControlViewport {
+ GDCLASS(DragTarget, NotificationControlViewport);
public:
Variant drag_data;
diff --git a/tests/scene/test_window.h b/tests/scene/test_window.h
index e0c55101de..592cccfd7e 100644
--- a/tests/scene/test_window.h
+++ b/tests/scene/test_window.h
@@ -38,8 +38,8 @@
namespace TestWindow {
-class NotificationControl : public Control {
- GDCLASS(NotificationControl, Control);
+class NotificationControlWindow : public Control {
+ GDCLASS(NotificationControlWindow, Control);
protected:
void _notification(int p_what) {
@@ -69,7 +69,7 @@ TEST_CASE("[SceneTree][Window]") {
w->set_content_scale_size(Size2i(200, 200));
w->set_content_scale_mode(Window::CONTENT_SCALE_MODE_CANVAS_ITEMS);
w->set_content_scale_aspect(Window::CONTENT_SCALE_ASPECT_KEEP);
- NotificationControl *c = memnew(NotificationControl);
+ NotificationControlWindow *c = memnew(NotificationControlWindow);
w->add_child(c);
c->set_size(Size2i(100, 100));
c->set_position(Size2i(-50, -50));
diff --git a/tests/servers/test_text_server.h b/tests/servers/test_text_server.h
index eef5b850ca..0f23929e1e 100644
--- a/tests/servers/test_text_server.h
+++ b/tests/servers/test_text_server.h
@@ -70,7 +70,7 @@ TEST_SUITE("[TextServer]") {
ts->font_set_data_ptr(font1, _font_NotoSans_Regular, _font_NotoSans_Regular_size);
ts->font_set_allow_system_fallback(font1, false);
RID font2 = ts->create_font();
- ts->font_set_data_ptr(font2, _font_NotoSansThaiUI_Regular, _font_NotoSansThaiUI_Regular_size);
+ ts->font_set_data_ptr(font2, _font_NotoSansThai_Regular, _font_NotoSansThai_Regular_size);
ts->font_set_allow_system_fallback(font2, false);
Array font;
@@ -177,7 +177,7 @@ TEST_SUITE("[TextServer]") {
ts->font_set_data_ptr(font1, _font_NotoSans_Regular, _font_NotoSans_Regular_size);
ts->font_set_allow_system_fallback(font1, false);
RID font2 = ts->create_font();
- ts->font_set_data_ptr(font2, _font_NotoSansThaiUI_Regular, _font_NotoSansThaiUI_Regular_size);
+ ts->font_set_data_ptr(font2, _font_NotoSansThai_Regular, _font_NotoSansThai_Regular_size);
ts->font_set_allow_system_fallback(font2, false);
RID font3 = ts->create_font();
ts->font_set_data_ptr(font3, _font_NotoNaskhArabicUI_Regular, _font_NotoNaskhArabicUI_Regular_size);
@@ -511,7 +511,7 @@ TEST_SUITE("[TextServer]") {
RID font1 = ts->create_font();
ts->font_set_data_ptr(font1, _font_NotoSans_Regular, _font_NotoSans_Regular_size);
RID font2 = ts->create_font();
- ts->font_set_data_ptr(font2, _font_NotoSansThaiUI_Regular, _font_NotoSansThaiUI_Regular_size);
+ ts->font_set_data_ptr(font2, _font_NotoSansThai_Regular, _font_NotoSansThai_Regular_size);
Array font;
font.push_back(font1);
diff --git a/tests/test_main.cpp b/tests/test_main.cpp
index 6cc7aad48e..a4306db6f4 100644
--- a/tests/test_main.cpp
+++ b/tests/test_main.cpp
@@ -212,7 +212,6 @@ struct GodotTestCaseListener : public doctest::IReporter {
PhysicsServer2D *physics_server_2d = nullptr;
NavigationServer3D *navigation_server_3d = nullptr;
NavigationServer2D *navigation_server_2d = nullptr;
- ThemeDB *theme_db = nullptr;
void test_case_start(const doctest::TestCaseData &p_in) override {
reinitialize();
@@ -238,6 +237,10 @@ struct GodotTestCaseListener : public doctest::IReporter {
RenderingServerDefault::get_singleton()->init();
RenderingServerDefault::get_singleton()->set_render_loop_enabled(false);
+ // ThemeDB requires RenderingServer to initialize the default theme.
+ // So we have to do this for each test case.
+ ThemeDB::get_singleton()->initialize_theme_noproject();
+
physics_server_3d = PhysicsServer3DManager::get_singleton()->new_default_server();
physics_server_3d->init();
@@ -252,9 +255,6 @@ struct GodotTestCaseListener : public doctest::IReporter {
memnew(InputMap);
InputMap::get_singleton()->load_default();
- theme_db = memnew(ThemeDB);
- theme_db->initialize_theme_noproject();
-
memnew(SceneTree);
SceneTree::get_singleton()->initialize();
if (!DisplayServer::get_singleton()->has_feature(DisplayServer::Feature::FEATURE_SUBWINDOWS)) {
@@ -294,11 +294,6 @@ struct GodotTestCaseListener : public doctest::IReporter {
memdelete(SceneTree::get_singleton());
}
- if (theme_db) {
- memdelete(theme_db);
- theme_db = nullptr;
- }
-
if (navigation_server_3d) {
memdelete(navigation_server_3d);
navigation_server_3d = nullptr;
@@ -326,6 +321,10 @@ struct GodotTestCaseListener : public doctest::IReporter {
}
if (RenderingServer::get_singleton()) {
+ // ThemeDB requires RenderingServer to finalize the default theme.
+ // So we have to do this for each test case.
+ ThemeDB::get_singleton()->finalize_theme();
+
RenderingServer::get_singleton()->sync();
RenderingServer::get_singleton()->global_shader_parameters_clear();
RenderingServer::get_singleton()->finish();
diff --git a/thirdparty/README.md b/thirdparty/README.md
index 100f4edb71..e8cef36f9a 100644
--- a/thirdparty/README.md
+++ b/thirdparty/README.md
@@ -154,25 +154,68 @@ Files extracted from upstream source:
## fonts
-- `NotoSans*.woff2`, `NotoNaskhArabicUI_*.woff2`:
- * Upstream: https://github.com/googlefonts/noto-fonts
- * Version: v2017-10-24-phase3-second-cleanup
- * License: OFL-1.1
- * Comment: Use UI font variant if available, because it has tight vertical metrics and
- good for UI.
-- `JetBrainsMono_Regular.woff2`:
- * Upstream: https://github.com/JetBrains/JetBrainsMono
- * Version: 2.242
- * License: OFL-1.1
- `DroidSans*.woff2`:
* Upstream: https://android.googlesource.com/platform/frameworks/base/+/master/data/fonts/
* Version: ? (pre-2014 commit when DroidSansJapanese.ttf was obsoleted)
* License: Apache 2.0
+- `JetBrainsMono_Regular.woff2`:
+ * Upstream: https://github.com/JetBrains/JetBrainsMono
+ * Version: 2.304 (cd5227bd1f61dff3bbd6c814ceaf7ffd95e947d9, 2023)
+ * License: OFL-1.1
+- `NotoNaskhArabicUI*.woff2`:
+ * Upstream: https://github.com/notofonts/arabic
+ * Version: 2.014 (133ccaebf922ca080a7eef22998611ac3c242df9, 2022)
+ * License: OFL-1.1
+- `NotoSans*.woff2`:
+ * Upstream: https://github.com/notofonts/latin-greek-cyrillic
+ * Version: 2.012 (9ea0c8d37bff0c0067b03777f40aa04f2bf78f99, 2023)
+ * License: OFL-1.1
+- `NotoSansBengali*.woff2`:
+ * Upstream: https://github.com/notofonts/bengali
+ * Version: 2.003 (020a5701f6fc6a363d5eccbae45e37714c0ad686, 2022)
+ * License: OFL-1.1
+- `NotoSansDevanagari*.woff2`:
+ * Upstream: https://github.com/notofonts/devanagari
+ * Version: 2.004 (f8f27e49da0ec9e5e38ecf3628671f05b24dd955, 2023)
+ * License: OFL-1.1
+- `NotoSansGeorgian*.woff2`:
+ * Upstream: https://github.com/notofonts/georgian
+ * Version: 2.002 (243ec9aa1d4ec58cc42120d30faac1a102fbfeb9, 2022)
+ * License: OFL-1.1
+- `NotoSansHebrew*.woff2`:
+ * Upstream: https://github.com/notofonts/hebrew
+ * Version: 2.003 (caa7ab0614fb5b37cc003d9bf3d7d3e765331110, 2022)
+ * License: OFL-1.1
+- `NotoSansMalayalam*.woff2`:
+ * Upstream: https://github.com/notofonts/malayalam
+ * Version: 2.104 (0fd65e553a6af3dc1c09ed39dfe8933e01c17b32, 2023)
+ * License: OFL-1.1
+- `NotoSansOriya*.woff2`:
+ * Upstream: https://github.com/notofonts/oriya
+ * Version: 2.005 (9377f242b247df12d0bf4cecd93b9c4b18036fbd, 2023)
+ * License: OFL-1.1
+- `NotoSansSinhala*.woff2`:
+ * Upstream: https://github.com/notofonts/sinhala
+ * Version: 2.006 (66e5a2ed9797e575222d6e7c5b3710c7bf68be79, 2022)
+ * License: OFL-1.1
+- `NotoSansTamil*.woff2`:
+ * Upstream: https://github.com/notofonts/tamil
+ * Version: 2.004 (f34a08d1ae3fa810581f63410296d971bdcd62dc, 2023)
+ * License: OFL-1.1
+- `NotoSansTelugu*.woff2`:
+ * Upstream: https://github.com/notofonts/telugu
+ * Version: 2.004 (68a6a8170cba5b2e9b45029ef36994961e8f614c, 2023)
+ * License: OFL-1.1
+- `NotoSansThai*.woff2`:
+ * Upstream: https://github.com/notofonts/thai
+ * Version: 2.001 (09af528011390f35abf15cf86068dae208f512c4, 2022)
+ * License: OFL-1.1
- `OpenSans_SemiBold.woff2`:
* Upstream: https://fonts.google.com/specimen/Open+Sans
* Version: 1.10 (downloaded from Google Fonts in February 2021)
* License: Apache 2.0
-- All fonts are converted from the `.ttf` sources using `https://github.com/google/woff2` tool.
+- All fonts are converted from the unhinted `.ttf` sources using `https://github.com/google/woff2` tool.
+- Comment: Use UI font variant if available, because it has tight vertical metrics and good for UI.
## freetype
diff --git a/thirdparty/fonts/JetBrainsMono_Regular.woff2 b/thirdparty/fonts/JetBrainsMono_Regular.woff2
index 490104645b..dc698ffb83 100644
--- a/thirdparty/fonts/JetBrainsMono_Regular.woff2
+++ b/thirdparty/fonts/JetBrainsMono_Regular.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoNaskhArabicUI_Bold.woff2 b/thirdparty/fonts/NotoNaskhArabicUI_Bold.woff2
index 72358d6eb1..e9a834ac69 100644
--- a/thirdparty/fonts/NotoNaskhArabicUI_Bold.woff2
+++ b/thirdparty/fonts/NotoNaskhArabicUI_Bold.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoNaskhArabicUI_Regular.woff2 b/thirdparty/fonts/NotoNaskhArabicUI_Regular.woff2
index 1195d4174e..b0c0aaf766 100644
--- a/thirdparty/fonts/NotoNaskhArabicUI_Regular.woff2
+++ b/thirdparty/fonts/NotoNaskhArabicUI_Regular.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansBengaliUI_Bold.woff2 b/thirdparty/fonts/NotoSansBengaliUI_Bold.woff2
index 03adf85fdc..c0087a2453 100644
--- a/thirdparty/fonts/NotoSansBengaliUI_Bold.woff2
+++ b/thirdparty/fonts/NotoSansBengaliUI_Bold.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansBengaliUI_Regular.woff2 b/thirdparty/fonts/NotoSansBengaliUI_Regular.woff2
index a6a3ffa3a7..219792295a 100644
--- a/thirdparty/fonts/NotoSansBengaliUI_Regular.woff2
+++ b/thirdparty/fonts/NotoSansBengaliUI_Regular.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansDevanagariUI_Bold.woff2 b/thirdparty/fonts/NotoSansDevanagariUI_Bold.woff2
index 6c835712cb..d3d34ff8e1 100644
--- a/thirdparty/fonts/NotoSansDevanagariUI_Bold.woff2
+++ b/thirdparty/fonts/NotoSansDevanagariUI_Bold.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansDevanagariUI_Regular.woff2 b/thirdparty/fonts/NotoSansDevanagariUI_Regular.woff2
index 486896e6e9..333562f449 100644
--- a/thirdparty/fonts/NotoSansDevanagariUI_Regular.woff2
+++ b/thirdparty/fonts/NotoSansDevanagariUI_Regular.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansGeorgian_Bold.woff2 b/thirdparty/fonts/NotoSansGeorgian_Bold.woff2
index 104afa150c..c5e25ffe22 100644
--- a/thirdparty/fonts/NotoSansGeorgian_Bold.woff2
+++ b/thirdparty/fonts/NotoSansGeorgian_Bold.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansGeorgian_Regular.woff2 b/thirdparty/fonts/NotoSansGeorgian_Regular.woff2
index 0a7b9e878b..64ff0e84d8 100644
--- a/thirdparty/fonts/NotoSansGeorgian_Regular.woff2
+++ b/thirdparty/fonts/NotoSansGeorgian_Regular.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansHebrew_Bold.woff2 b/thirdparty/fonts/NotoSansHebrew_Bold.woff2
index 96c5ae1349..01768b6416 100644
--- a/thirdparty/fonts/NotoSansHebrew_Bold.woff2
+++ b/thirdparty/fonts/NotoSansHebrew_Bold.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansHebrew_Regular.woff2 b/thirdparty/fonts/NotoSansHebrew_Regular.woff2
index 17eadedc6f..980b7d3bf8 100644
--- a/thirdparty/fonts/NotoSansHebrew_Regular.woff2
+++ b/thirdparty/fonts/NotoSansHebrew_Regular.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansMalayalamUI_Bold.woff2 b/thirdparty/fonts/NotoSansMalayalamUI_Bold.woff2
index 5f6bacb0c3..8757bf3584 100644
--- a/thirdparty/fonts/NotoSansMalayalamUI_Bold.woff2
+++ b/thirdparty/fonts/NotoSansMalayalamUI_Bold.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansMalayalamUI_Regular.woff2 b/thirdparty/fonts/NotoSansMalayalamUI_Regular.woff2
index c54a82a874..cd266fafd3 100644
--- a/thirdparty/fonts/NotoSansMalayalamUI_Regular.woff2
+++ b/thirdparty/fonts/NotoSansMalayalamUI_Regular.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansOriyaUI_Bold.woff2 b/thirdparty/fonts/NotoSansOriyaUI_Bold.woff2
deleted file mode 100644
index b7e34302e2..0000000000
--- a/thirdparty/fonts/NotoSansOriyaUI_Bold.woff2
+++ /dev/null
Binary files differ
diff --git a/thirdparty/fonts/NotoSansOriyaUI_Regular.woff2 b/thirdparty/fonts/NotoSansOriyaUI_Regular.woff2
deleted file mode 100644
index e64090cd77..0000000000
--- a/thirdparty/fonts/NotoSansOriyaUI_Regular.woff2
+++ /dev/null
Binary files differ
diff --git a/thirdparty/fonts/NotoSansOriya_Bold.woff2 b/thirdparty/fonts/NotoSansOriya_Bold.woff2
new file mode 100644
index 0000000000..333abfaae0
--- /dev/null
+++ b/thirdparty/fonts/NotoSansOriya_Bold.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansOriya_Regular.woff2 b/thirdparty/fonts/NotoSansOriya_Regular.woff2
new file mode 100644
index 0000000000..c9b7c4a74e
--- /dev/null
+++ b/thirdparty/fonts/NotoSansOriya_Regular.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansSinhalaUI_Bold.woff2 b/thirdparty/fonts/NotoSansSinhalaUI_Bold.woff2
index 01dbd1bc8f..7facb291bd 100644
--- a/thirdparty/fonts/NotoSansSinhalaUI_Bold.woff2
+++ b/thirdparty/fonts/NotoSansSinhalaUI_Bold.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansSinhalaUI_Regular.woff2 b/thirdparty/fonts/NotoSansSinhalaUI_Regular.woff2
index 504c9d0809..8059db385f 100644
--- a/thirdparty/fonts/NotoSansSinhalaUI_Regular.woff2
+++ b/thirdparty/fonts/NotoSansSinhalaUI_Regular.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansTamilUI_Bold.woff2 b/thirdparty/fonts/NotoSansTamilUI_Bold.woff2
index 96967b0cce..ed428dedbd 100644
--- a/thirdparty/fonts/NotoSansTamilUI_Bold.woff2
+++ b/thirdparty/fonts/NotoSansTamilUI_Bold.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansTamilUI_Regular.woff2 b/thirdparty/fonts/NotoSansTamilUI_Regular.woff2
index e9b2bee582..d32dc96ae6 100644
--- a/thirdparty/fonts/NotoSansTamilUI_Regular.woff2
+++ b/thirdparty/fonts/NotoSansTamilUI_Regular.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansTeluguUI_Bold.woff2 b/thirdparty/fonts/NotoSansTeluguUI_Bold.woff2
index 2885bf991d..4de7b9f28d 100644
--- a/thirdparty/fonts/NotoSansTeluguUI_Bold.woff2
+++ b/thirdparty/fonts/NotoSansTeluguUI_Bold.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansTeluguUI_Regular.woff2 b/thirdparty/fonts/NotoSansTeluguUI_Regular.woff2
index ac5e66d8f6..0d9fe71d3a 100644
--- a/thirdparty/fonts/NotoSansTeluguUI_Regular.woff2
+++ b/thirdparty/fonts/NotoSansTeluguUI_Regular.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansThaiUI_Bold.woff2 b/thirdparty/fonts/NotoSansThaiUI_Bold.woff2
deleted file mode 100644
index 202995c066..0000000000
--- a/thirdparty/fonts/NotoSansThaiUI_Bold.woff2
+++ /dev/null
Binary files differ
diff --git a/thirdparty/fonts/NotoSansThaiUI_Regular.woff2 b/thirdparty/fonts/NotoSansThaiUI_Regular.woff2
deleted file mode 100644
index 2fb284f21f..0000000000
--- a/thirdparty/fonts/NotoSansThaiUI_Regular.woff2
+++ /dev/null
Binary files differ
diff --git a/thirdparty/fonts/NotoSansThai_Bold.woff2 b/thirdparty/fonts/NotoSansThai_Bold.woff2
new file mode 100644
index 0000000000..68dc6c1392
--- /dev/null
+++ b/thirdparty/fonts/NotoSansThai_Bold.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSansThai_Regular.woff2 b/thirdparty/fonts/NotoSansThai_Regular.woff2
new file mode 100644
index 0000000000..ae29cbdb10
--- /dev/null
+++ b/thirdparty/fonts/NotoSansThai_Regular.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSans_Bold.woff2 b/thirdparty/fonts/NotoSans_Bold.woff2
index 36a5b89999..09a3297a6a 100644
--- a/thirdparty/fonts/NotoSans_Bold.woff2
+++ b/thirdparty/fonts/NotoSans_Bold.woff2
Binary files differ
diff --git a/thirdparty/fonts/NotoSans_Regular.woff2 b/thirdparty/fonts/NotoSans_Regular.woff2
index d449eed8d7..59c252ede1 100644
--- a/thirdparty/fonts/NotoSans_Regular.woff2
+++ b/thirdparty/fonts/NotoSans_Regular.woff2
Binary files differ