Merge pull request #98864 from akien-mga/3.4-ci-build-warning-fixes
Some checks failed
🤖 Android Builds / Template (target=release, tools=no) (push) Has been cancelled
🍏 iOS Builds / Template (target=release, tools=no) (push) Has been cancelled
🌐 JavaScript Builds / Template (target=release, tools=no) (push) Has been cancelled
🐧 Linux Builds / ${{ matrix.name }} (false, ./bin/godot.x11.tools.64s, false, linux-editor-sanitizers, Editor and sanitizers (target=debug, tools=yes, use_asan=yes, use_ubsan=yes), use_asan=yes use_ubsan=yes, debug, true, true) (push) Has been cancelled
🐧 Linux Builds / ${{ matrix.name }} (true, ./bin/godot.x11.opt.tools.64.mono, true, linux-editor-mono, Editor w/ Mono (target=release_debug, tools=yes), module_mono_enabled=yes mono_static=yes mono_glue=no, release_debug, true) (push) Has been cancelled
🐧 Linux Builds / ${{ matrix.name }} (true, false, linux-template-mono, Template w/ Mono (target=release, tools=no), module_mono_enabled=yes mono_static=yes mono_glue=no debug_symbols=no, release, false) (push) Has been cancelled
🍎 macOS Builds / ${{ matrix.name }} (./bin/godot.osx.opt.tools.64, macos-editor, Editor (target=release_debug, tools=yes), release_debug, true) (push) Has been cancelled
🍎 macOS Builds / ${{ matrix.name }} (macos-template, Template (target=release, tools=no), release, false) (push) Has been cancelled
☁ Server Builds / ${{ matrix.name }} (server-editor-mono, Linux Headless w/ Mono (target=release_debug, tools=yes), release_debug, true) (push) Has been cancelled
☁ Server Builds / ${{ matrix.name }} (server-template-mono, Linux Server w/ Mono (target=release, tools=no), release, false) (push) Has been cancelled
📊 Static Checks / Static Checks (clang-format, black format, file format, documentation checks) (push) Has been cancelled
🏁 Windows Builds / ${{ matrix.name }} (./bin/godot.windows.opt.tools.64.exe, windows-editor, Editor (target=release_debug, tools=yes), release_debug, true) (push) Has been cancelled
🏁 Windows Builds / ${{ matrix.name }} (windows-template, Template (target=release, tools=no), release, false) (push) Has been cancelled

[3.4] Misc. build and warning fixes to pass CI and compile with recent SCons and GCC/Clang
This commit is contained in:
Rémi Verschelde 2024-11-06 12:17:03 +01:00 committed by GitHub
commit 01621ddc3c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
50 changed files with 886 additions and 400 deletions

View File

@ -12,7 +12,7 @@ runs:
steps: steps:
# Upload cache on completion and check it out now # Upload cache on completion and check it out now
- name: Load .scons_cache directory - name: Load .scons_cache directory
uses: actions/cache@v2 uses: actions/cache@v4
with: with:
path: ${{inputs.scons-cache}} path: ${{inputs.scons-cache}}
key: ${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}} key: ${{inputs.cache-name}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}

View File

@ -12,7 +12,7 @@ runs:
steps: steps:
# Use python 3.x release (works cross platform) # Use python 3.x release (works cross platform)
- name: Set up Python 3.x - name: Set up Python 3.x
uses: actions/setup-python@v2 uses: actions/setup-python@v5
with: with:
# Semantic version range syntax or exact version of a Python version # Semantic version range syntax or exact version of a Python version
python-version: ${{ inputs.python-version }} python-version: ${{ inputs.python-version }}

View File

@ -12,7 +12,7 @@ runs:
using: "composite" using: "composite"
steps: steps:
- name: Upload Godot Artifact - name: Upload Godot Artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v4
with: with:
name: ${{ inputs.name }} name: ${{ inputs.name }}
path: ${{ inputs.path }} path: ${{ inputs.path }}

View File

@ -17,7 +17,7 @@ jobs:
name: Template (target=release, tools=no) name: Template (target=release, tools=no)
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
# Azure repositories are not reliable, we need to prevent azure giving us packages. # Azure repositories are not reliable, we need to prevent azure giving us packages.
- name: Make apt sources.list use the default Ubuntu repositories - name: Make apt sources.list use the default Ubuntu repositories
@ -27,8 +27,9 @@ jobs:
sudo apt-get update sudo apt-get update
- name: Set up Java 11 - name: Set up Java 11
uses: actions/setup-java@v1 uses: actions/setup-java@v4
with: with:
distribution: temurin
java-version: 11 java-version: 11
- name: Setup Godot build cache - name: Setup Godot build cache

View File

@ -16,7 +16,7 @@ jobs:
name: Template (target=release, tools=no) name: Template (target=release, tools=no)
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setup Godot build cache - name: Setup Godot build cache
uses: ./.github/actions/godot-cache uses: ./.github/actions/godot-cache

View File

@ -18,18 +18,18 @@ jobs:
name: Template (target=release, tools=no) name: Template (target=release, tools=no)
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
# Additional cache for Emscripten generated system libraries # Additional cache for Emscripten generated system libraries
- name: Load Emscripten cache - name: Load Emscripten cache
id: javascript-template-emscripten-cache id: javascript-template-emscripten-cache
uses: actions/cache@v2 uses: actions/cache@v4
with: with:
path: ${{env.EM_CACHE_FOLDER}} path: ${{env.EM_CACHE_FOLDER}}
key: ${{env.EM_VERSION}}-${{github.job}} key: ${{env.EM_VERSION}}-${{github.job}}
- name: Set up Emscripten latest - name: Set up Emscripten latest
uses: mymindstorm/setup-emsdk@v10 uses: mymindstorm/setup-emsdk@v14
with: with:
version: ${{env.EM_VERSION}} version: ${{env.EM_VERSION}}
actions-cache-folder: ${{env.EM_CACHE_FOLDER}} actions-cache-folder: ${{env.EM_CACHE_FOLDER}}

View File

@ -47,7 +47,7 @@ jobs:
artifact: true artifact: true
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Linux dependencies - name: Linux dependencies
shell: bash shell: bash

View File

@ -30,7 +30,7 @@ jobs:
tools: false tools: false
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setup Godot build cache - name: Setup Godot build cache
uses: ./.github/actions/godot-cache uses: ./.github/actions/godot-cache

View File

@ -29,7 +29,7 @@ jobs:
tools: false tools: false
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Linux dependencies - name: Linux dependencies
shell: bash shell: bash

View File

@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v4
# Azure repositories are not reliable, we need to prevent Azure giving us packages. # Azure repositories are not reliable, we need to prevent Azure giving us packages.
- name: Make apt sources.list use the default Ubuntu repositories - name: Make apt sources.list use the default Ubuntu repositories

View File

@ -33,7 +33,7 @@ jobs:
tools: false tools: false
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setup Godot build cache - name: Setup Godot build cache
uses: ./.github/actions/godot-cache uses: ./.github/actions/godot-cache

View File

@ -32,6 +32,7 @@
#define COWDATA_H_ #define COWDATA_H_
#include <string.h> #include <string.h>
#include <type_traits>
#include "core/error_macros.h" #include "core/error_macros.h"
#include "core/os/memory.h" #include "core/os/memory.h"
@ -202,7 +203,7 @@ void CowData<T>::_unref(void *p_data) {
} }
// clean up // clean up
if (!__has_trivial_destructor(T)) { if (!std::is_trivially_destructible<T>::value) {
uint32_t *count = _get_size(); uint32_t *count = _get_size();
T *data = (T *)(count + 1); T *data = (T *)(count + 1);
@ -237,7 +238,7 @@ uint32_t CowData<T>::_copy_on_write() {
T *_data = (T *)(mem_new); T *_data = (T *)(mem_new);
// initialize new elements // initialize new elements
if (__has_trivial_copy(T)) { if (std::is_trivially_copyable<T>::value) {
memcpy(mem_new, _ptr, current_size * sizeof(T)); memcpy(mem_new, _ptr, current_size * sizeof(T));
} else { } else {
@ -300,7 +301,7 @@ Error CowData<T>::resize(int p_size) {
// construct the newly created elements // construct the newly created elements
if (!__has_trivial_constructor(T)) { if (!std::is_trivially_constructible<T>::value) {
T *elems = _get_data(); T *elems = _get_data();
for (int i = *_get_size(); i < p_size; i++) { for (int i = *_get_size(); i < p_size; i++) {
@ -311,7 +312,7 @@ Error CowData<T>::resize(int p_size) {
*_get_size() = p_size; *_get_size() = p_size;
} else if (p_size < current_size) { } else if (p_size < current_size) {
if (!__has_trivial_destructor(T)) { if (!std::is_trivially_destructible<T>::value) {
// deinitialize no longer needed elements // deinitialize no longer needed elements
for (uint32_t i = p_size; i < *_get_size(); i++) { for (uint32_t i = p_size; i < *_get_size(); i++) {
T *t = &_get_data()[i]; T *t = &_get_data()[i];

View File

@ -169,10 +169,11 @@ void RotatedFileLogger::rotate_file() {
if (FileAccess::exists(base_path)) { if (FileAccess::exists(base_path)) {
if (max_files > 1) { if (max_files > 1) {
char timestamp[21]; const size_t TIMESTAMP_SIZE = 21;
char timestamp[TIMESTAMP_SIZE];
OS::Date date = OS::get_singleton()->get_date(); OS::Date date = OS::get_singleton()->get_date();
OS::Time time = OS::get_singleton()->get_time(); OS::Time time = OS::get_singleton()->get_time();
sprintf(timestamp, "_%04d-%02d-%02d_%02d.%02d.%02d", date.year, date.month, date.day, time.hour, time.min, time.sec); snprintf(timestamp, TIMESTAMP_SIZE, "_%04d-%02d-%02d_%02d.%02d.%02d", date.year, date.month, date.day, time.hour, time.min, time.sec);
String backup_name = base_path.get_basename() + timestamp; String backup_name = base_path.get_basename() + timestamp;
if (base_path.get_extension() != String()) { if (base_path.get_extension() != String()) {

View File

@ -36,6 +36,8 @@
#include "core/sort_array.h" #include "core/sort_array.h"
#include "core/vector.h" #include "core/vector.h"
#include <type_traits>
template <class T, class U = uint32_t, bool force_trivial = false> template <class T, class U = uint32_t, bool force_trivial = false>
class LocalVector { class LocalVector {
private: private:
@ -63,7 +65,7 @@ public:
CRASH_COND_MSG(!data, "Out of memory"); CRASH_COND_MSG(!data, "Out of memory");
} }
if (!__has_trivial_constructor(T) && !force_trivial) { if (!std::is_trivially_constructible<T>::value && !force_trivial) {
memnew_placement(&data[count++], T(p_elem)); memnew_placement(&data[count++], T(p_elem));
} else { } else {
data[count++] = p_elem; data[count++] = p_elem;
@ -76,7 +78,7 @@ public:
for (U i = p_index; i < count; i++) { for (U i = p_index; i < count; i++) {
data[i] = data[i + 1]; data[i] = data[i + 1];
} }
if (!__has_trivial_destructor(T) && !force_trivial) { if (!std::is_trivially_destructible<T>::value && !force_trivial) {
data[count].~T(); data[count].~T();
} }
} }
@ -89,7 +91,7 @@ public:
if (count > p_index) { if (count > p_index) {
data[p_index] = data[count]; data[p_index] = data[count];
} }
if (!__has_trivial_destructor(T) && !force_trivial) { if (!std::is_trivially_destructible<T>::value && !force_trivial) {
data[count].~T(); data[count].~T();
} }
} }
@ -129,7 +131,7 @@ public:
_FORCE_INLINE_ U size() const { return count; } _FORCE_INLINE_ U size() const { return count; }
void resize(U p_size) { void resize(U p_size) {
if (p_size < count) { if (p_size < count) {
if (!__has_trivial_destructor(T) && !force_trivial) { if (!std::is_trivially_destructible<T>::value && !force_trivial) {
for (U i = p_size; i < count; i++) { for (U i = p_size; i < count; i++) {
data[i].~T(); data[i].~T();
} }
@ -146,7 +148,7 @@ public:
data = (T *)memrealloc(data, capacity * sizeof(T)); data = (T *)memrealloc(data, capacity * sizeof(T));
CRASH_COND_MSG(!data, "Out of memory"); CRASH_COND_MSG(!data, "Out of memory");
} }
if (!__has_trivial_constructor(T) && !force_trivial) { if (!std::is_trivially_constructible<T>::value && !force_trivial) {
for (U i = count; i < p_size; i++) { for (U i = count; i < p_size; i++) {
memnew_placement(&data[i], T); memnew_placement(&data[i], T);
} }

View File

@ -271,7 +271,7 @@ static int _bsp_find_best_half_plane(const Face3 *p_faces, const Vector<int> &p_
const Face3 &f = p_faces[indices[i]]; const Face3 &f = p_faces[indices[i]];
Plane p = f.get_plane(); Plane p = f.get_plane();
int num_over = 0, num_under = 0, num_spanning = 0; int num_over = 0, num_under = 0; //num_spanning = 0;
for (int j = 0; j < ic; j++) { for (int j = 0; j < ic; j++) {
if (i == j) { if (i == j) {
@ -294,7 +294,7 @@ static int _bsp_find_best_half_plane(const Face3 *p_faces, const Vector<int> &p_
} }
if (over && under) { if (over && under) {
num_spanning++; //num_spanning++;
} else if (over) { } else if (over) {
num_over++; num_over++;
} else { } else {

View File

@ -394,7 +394,6 @@ Error QuickHull::build(const Vector<Vector3> &p_points, Geometry::MeshData &r_me
if (O->get().plane.is_equal_approx(f.plane)) { if (O->get().plane.is_equal_approx(f.plane)) {
//merge and delete edge and contiguous face, while repointing edges (uuugh!) //merge and delete edge and contiguous face, while repointing edges (uuugh!)
int ois = O->get().indices.size(); int ois = O->get().indices.size();
int merged = 0;
for (int j = 0; j < ois; j++) { for (int j = 0; j < ois; j++) {
//search a //search a
@ -409,7 +408,6 @@ Error QuickHull::build(const Vector<Vector3> &p_points, Geometry::MeshData &r_me
if (idx != a) { if (idx != a) {
f.indices.insert(i + 1, idx); f.indices.insert(i + 1, idx);
i++; i++;
merged++;
} }
Edge e2(idx, idxn); Edge e2(idx, idxn);

View File

@ -35,6 +35,7 @@
#include "core/safe_refcount.h" #include "core/safe_refcount.h"
#include <stddef.h> #include <stddef.h>
#include <type_traits>
#ifndef PAD_ALIGN #ifndef PAD_ALIGN
#define PAD_ALIGN 16 //must always be greater than this at much #define PAD_ALIGN 16 //must always be greater than this at much
@ -111,7 +112,7 @@ void memdelete(T *p_class) {
if (!predelete_handler(p_class)) { if (!predelete_handler(p_class)) {
return; // doesn't want to be deleted return; // doesn't want to be deleted
} }
if (!__has_trivial_destructor(T)) { if (!std::is_trivially_destructible<T>::value) {
p_class->~T(); p_class->~T();
} }
@ -123,7 +124,7 @@ void memdelete_allocator(T *p_class) {
if (!predelete_handler(p_class)) { if (!predelete_handler(p_class)) {
return; // doesn't want to be deleted return; // doesn't want to be deleted
} }
if (!__has_trivial_destructor(T)) { if (!std::is_trivially_destructible<T>::value) {
p_class->~T(); p_class->~T();
} }
@ -152,7 +153,7 @@ T *memnew_arr_template(size_t p_elements, const char *p_descr = "") {
ERR_FAIL_COND_V(!mem, failptr); ERR_FAIL_COND_V(!mem, failptr);
*(mem - 1) = p_elements; *(mem - 1) = p_elements;
if (!__has_trivial_constructor(T)) { if (!std::is_trivially_constructible<T>::value) {
T *elems = (T *)mem; T *elems = (T *)mem;
/* call operator new */ /* call operator new */
@ -179,7 +180,7 @@ template <typename T>
void memdelete_arr(T *p_class) { void memdelete_arr(T *p_class) {
uint64_t *ptr = (uint64_t *)p_class; uint64_t *ptr = (uint64_t *)p_class;
if (!__has_trivial_destructor(T)) { if (!std::is_trivially_destructible<T>::value) {
uint64_t elem_count = *(ptr - 1); uint64_t elem_count = *(ptr - 1);
for (uint64_t i = 0; i < elem_count; i++) { for (uint64_t i = 0; i < elem_count; i++) {

View File

@ -211,12 +211,12 @@ public:
size_mask = mask; size_mask = mask;
}; };
RingBuffer<T>(int p_power = 0) { RingBuffer(int p_power = 0) {
read_pos = 0; read_pos = 0;
write_pos = 0; write_pos = 0;
resize(p_power); resize(p_power);
}; };
~RingBuffer<T>(){}; ~RingBuffer() {}
}; };
#endif #endif

View File

@ -131,7 +131,7 @@ public:
} }
} }
_ALWAYS_INLINE_ explicit SafeNumeric<T>(T p_value = static_cast<T>(0)) { _ALWAYS_INLINE_ explicit SafeNumeric(T p_value = static_cast<T>(0)) {
set(p_value); set(p_value);
} }
}; };

View File

@ -697,7 +697,6 @@ public:
const int vofs = (grid_size.height - h) / 2; const int vofs = (grid_size.height - h) / 2;
int layer_index = 0; int layer_index = 0;
int block_index = 0;
Point2 arrow_pos; Point2 arrow_pos;
@ -769,8 +768,6 @@ public:
break; break;
} }
} }
++block_index;
} }
if ((expansion_rows != prev_expansion_rows) && expanded) { if ((expansion_rows != prev_expansion_rows) && expanded) {

View File

@ -526,7 +526,6 @@ private:
Vector<String> failed_files; Vector<String> failed_files;
int idx = 0;
while (ret == UNZ_OK) { while (ret == UNZ_OK) {
//get filename //get filename
unz_file_info info; unz_file_info info;
@ -566,7 +565,6 @@ private:
} }
} }
idx++;
ret = unzGoToNextFile(pkg); ret = unzGoToNextFile(pkg);
} }

View File

@ -204,18 +204,14 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must
bool found = false; bool found = false;
bool match = false; bool match = false;
int index = 0;
for (List<String>::Element *E = extensions.front(); E; E = E->next()) { for (List<String>::Element *E = extensions.front(); E; E = E->next()) {
if (E->get().nocasecmp_to(extension) == 0) { if (E->get().nocasecmp_to(extension) == 0) {
//FIXME (?) - changing language this way doesn't update controls, needs rework
//language_menu->select(index); // change Language option by extension
found = true; found = true;
if (E->get() == ScriptServer::get_language(language_menu->get_selected())->get_extension()) { if (E->get() == ScriptServer::get_language(language_menu->get_selected())->get_extension()) {
match = true; match = true;
} }
break; break;
} }
index++;
} }
if (!found) { if (!found) {

View File

@ -1059,7 +1059,7 @@ InputDefault::JoyEvent InputDefault::_get_mapped_axis_event(const JoyDeviceMappi
return event; return event;
} }
void InputDefault::_get_mapped_hat_events(const JoyDeviceMapping &mapping, int p_hat, JoyEvent r_events[]) { void InputDefault::_get_mapped_hat_events(const JoyDeviceMapping &mapping, int p_hat, JoyEvent r_events[(size_t)HAT_MAX]) {
for (int i = 0; i < mapping.bindings.size(); i++) { for (int i = 0; i < mapping.bindings.size(); i++) {
const JoyBinding binding = mapping.bindings[i]; const JoyBinding binding = mapping.bindings[i];
if (binding.inputType == TYPE_HAT && binding.input.hat.hat == p_hat) { if (binding.inputType == TYPE_HAT && binding.input.hat.hat == p_hat) {

View File

@ -838,7 +838,7 @@ def get_compiler_version(env):
return None return None
else: # TODO: Implement for MSVC else: # TODO: Implement for MSVC
return None return None
match = re.search("[0-9]+\.[0-9.]+", version) match = re.search(r"[0-9]+\.[0-9.]+", version)
if match is not None: if match is not None:
return list(map(int, match.group().split("."))) return list(map(int, match.group().split(".")))
else: else:

View File

@ -36,10 +36,19 @@
#include "core/math/vector3.h" #include "core/math/vector3.h"
#include "core/typedefs.h" #include "core/typedefs.h"
#if defined(__clang__) && (__clang_major__ >= 13)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-copy-with-user-provided-copy"
#endif
#include <LinearMath/btMatrix3x3.h> #include <LinearMath/btMatrix3x3.h>
#include <LinearMath/btTransform.h> #include <LinearMath/btTransform.h>
#include <LinearMath/btVector3.h> #include <LinearMath/btVector3.h>
#if defined(__clang__) && (__clang_major__ >= 13)
#pragma clang diagnostic pop
#endif
/** /**
@author AndreaCatania @author AndreaCatania
*/ */

View File

@ -37,8 +37,17 @@
#include "core/vset.h" #include "core/vset.h"
#include "shape_owner_bullet.h" #include "shape_owner_bullet.h"
#if defined(__clang__) && (__clang_major__ >= 13)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-copy-with-user-provided-copy"
#endif
#include <LinearMath/btTransform.h> #include <LinearMath/btTransform.h>
#if defined(__clang__) && (__clang_major__ >= 13)
#pragma clang diagnostic pop
#endif
/** /**
@author AndreaCatania @author AndreaCatania
*/ */

View File

@ -34,8 +34,17 @@
#include "bullet_utilities.h" #include "bullet_utilities.h"
#include "rid_bullet.h" #include "rid_bullet.h"
#if defined(__clang__) && (__clang_major__ >= 13)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-copy-with-user-provided-copy"
#endif
#include <BulletDynamics/ConstraintSolver/btTypedConstraint.h> #include <BulletDynamics/ConstraintSolver/btTypedConstraint.h>
#if defined(__clang__) && (__clang_major__ >= 13)
#pragma clang diagnostic pop
#endif
/** /**
@author AndreaCatania @author AndreaCatania
*/ */

View File

@ -33,8 +33,17 @@
#include "core/int_types.h" #include "core/int_types.h"
#if defined(__clang__) && (__clang_major__ >= 13)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-copy-with-user-provided-copy"
#endif
#include <btBulletDynamicsCommon.h> #include <btBulletDynamicsCommon.h>
#if defined(__clang__) && (__clang_major__ >= 13)
#pragma clang diagnostic pop
#endif
/** /**
@author AndreaCatania @author AndreaCatania
*/ */

View File

@ -31,10 +31,19 @@
#ifndef GODOT_RAY_WORLD_ALGORITHM_H #ifndef GODOT_RAY_WORLD_ALGORITHM_H
#define GODOT_RAY_WORLD_ALGORITHM_H #define GODOT_RAY_WORLD_ALGORITHM_H
#if defined(__clang__) && (__clang_major__ >= 13)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-copy-with-user-provided-copy"
#endif
#include <BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.h> #include <BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.h>
#include <BulletCollision/CollisionDispatch/btCollisionCreateFunc.h> #include <BulletCollision/CollisionDispatch/btCollisionCreateFunc.h>
#include <BulletCollision/CollisionDispatch/btCollisionDispatcher.h> #include <BulletCollision/CollisionDispatch/btCollisionDispatcher.h>
#if defined(__clang__) && (__clang_major__ >= 13)
#pragma clang diagnostic pop
#endif
/** /**
@author AndreaCatania @author AndreaCatania
*/ */

View File

@ -33,9 +33,18 @@
#include "servers/physics_server.h" #include "servers/physics_server.h"
#if defined(__clang__) && (__clang_major__ >= 13)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-copy-with-user-provided-copy"
#endif
#include <BulletCollision/BroadphaseCollision/btBroadphaseProxy.h> #include <BulletCollision/BroadphaseCollision/btBroadphaseProxy.h>
#include <btBulletDynamicsCommon.h> #include <btBulletDynamicsCommon.h>
#if defined(__clang__) && (__clang_major__ >= 13)
#pragma clang diagnostic pop
#endif
/** /**
@author AndreaCatania @author AndreaCatania
*/ */

View File

@ -36,10 +36,19 @@
#include "rid_bullet.h" #include "rid_bullet.h"
#include "servers/physics_server.h" #include "servers/physics_server.h"
#if defined(__clang__) && (__clang_major__ >= 13)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-copy-with-user-provided-copy"
#endif
#include <LinearMath/btAlignedObjectArray.h> #include <LinearMath/btAlignedObjectArray.h>
#include <LinearMath/btScalar.h> #include <LinearMath/btScalar.h>
#include <LinearMath/btVector3.h> #include <LinearMath/btVector3.h>
#if defined(__clang__) && (__clang_major__ >= 13)
#pragma clang diagnostic pop
#endif
/** /**
@author AndreaCatania @author AndreaCatania
*/ */

View File

@ -729,7 +729,7 @@ void CSGBrushOperation::MeshMerge::mark_inside_faces() {
} }
} }
void CSGBrushOperation::MeshMerge::add_face(const Vector3 p_points[], const Vector2 p_uvs[], bool p_smooth, bool p_invert, const Ref<Material> &p_material, bool p_from_b) { void CSGBrushOperation::MeshMerge::add_face(const Vector3 p_points[3], const Vector2 p_uvs[3], bool p_smooth, bool p_invert, const Ref<Material> &p_material, bool p_from_b) {
int indices[3]; int indices[3];
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
VertexKey vk; VertexKey vk;
@ -1387,13 +1387,13 @@ void CSGBrushOperation::update_faces(const CSGBrush &p_brush_a, const int p_face
} }
// Ensure B has points either side of or in the plane of A. // Ensure B has points either side of or in the plane of A.
int in_plane_count = 0, over_count = 0, under_count = 0; int over_count = 0, under_count = 0;
Plane plane_a(vertices_a[0], vertices_a[1], vertices_a[2]); Plane plane_a(vertices_a[0], vertices_a[1], vertices_a[2]);
ERR_FAIL_COND_MSG(plane_a.normal == Vector3(), "Couldn't form plane from Brush A face."); ERR_FAIL_COND_MSG(plane_a.normal == Vector3(), "Couldn't form plane from Brush A face.");
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
if (plane_a.has_point(vertices_b[i])) { if (plane_a.has_point(vertices_b[i])) {
in_plane_count++; // In plane.
} else if (plane_a.is_point_over(vertices_b[i])) { } else if (plane_a.is_point_over(vertices_b[i])) {
over_count++; over_count++;
} else { } else {
@ -1406,7 +1406,6 @@ void CSGBrushOperation::update_faces(const CSGBrush &p_brush_a, const int p_face
} }
// Ensure A has points either side of or in the plane of B. // Ensure A has points either side of or in the plane of B.
in_plane_count = 0;
over_count = 0; over_count = 0;
under_count = 0; under_count = 0;
Plane plane_b(vertices_b[0], vertices_b[1], vertices_b[2]); Plane plane_b(vertices_b[0], vertices_b[1], vertices_b[2]);
@ -1414,7 +1413,7 @@ void CSGBrushOperation::update_faces(const CSGBrush &p_brush_a, const int p_face
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
if (plane_b.has_point(vertices_a[i])) { if (plane_b.has_point(vertices_a[i])) {
in_plane_count++; // In plane.
} else if (plane_b.is_point_over(vertices_a[i])) { } else if (plane_b.is_point_over(vertices_a[i])) {
over_count++; over_count++;
} else { } else {

View File

@ -1316,7 +1316,6 @@ int GDScriptCompiler::_parse_expression(CodeGen &codegen, const GDScriptParser::
Error GDScriptCompiler::_parse_block(CodeGen &codegen, const GDScriptParser::BlockNode *p_block, int p_stack_level, int p_break_addr, int p_continue_addr) { Error GDScriptCompiler::_parse_block(CodeGen &codegen, const GDScriptParser::BlockNode *p_block, int p_stack_level, int p_break_addr, int p_continue_addr) {
codegen.push_stack_identifiers(); codegen.push_stack_identifiers();
int new_identifiers = 0;
codegen.current_line = p_block->line; codegen.current_line = p_block->line;
for (int i = 0; i < p_block->statements.size(); i++) { for (int i = 0; i < p_block->statements.size(); i++) {
@ -1347,7 +1346,6 @@ Error GDScriptCompiler::_parse_block(CodeGen &codegen, const GDScriptParser::Blo
// copied because there is no _parse_statement :( // copied because there is no _parse_statement :(
codegen.add_stack_identifier(id->name, p_stack_level++); codegen.add_stack_identifier(id->name, p_stack_level++);
codegen.alloc_stack(p_stack_level); codegen.alloc_stack(p_stack_level);
new_identifiers++;
GDScriptParser::OperatorNode *op = memnew(GDScriptParser::OperatorNode); GDScriptParser::OperatorNode *op = memnew(GDScriptParser::OperatorNode);
op->op = GDScriptParser::OperatorNode::OP_ASSIGN; op->op = GDScriptParser::OperatorNode::OP_ASSIGN;
@ -1605,8 +1603,6 @@ Error GDScriptCompiler::_parse_block(CodeGen &codegen, const GDScriptParser::Blo
codegen.add_stack_identifier(lv->name, p_stack_level++); codegen.add_stack_identifier(lv->name, p_stack_level++);
codegen.alloc_stack(p_stack_level); codegen.alloc_stack(p_stack_level);
new_identifiers++;
} break; } break;
default: { default: {
//expression //expression

View File

@ -476,9 +476,8 @@ def copy_mono_root_files(env, mono_root, mono_bcl):
def copy_mono_etc_dir(mono_root, target_mono_config_dir, platform): def copy_mono_etc_dir(mono_root, target_mono_config_dir, platform):
from distutils.dir_util import copy_tree
from glob import glob from glob import glob
from shutil import copy from shutil import copy, copytree
if not os.path.isdir(target_mono_config_dir): if not os.path.isdir(target_mono_config_dir):
os.makedirs(target_mono_config_dir) os.makedirs(target_mono_config_dir)
@ -498,11 +497,11 @@ def copy_mono_etc_dir(mono_root, target_mono_config_dir, platform):
if not mono_etc_dir: if not mono_etc_dir:
raise RuntimeError("Mono installation etc directory not found") raise RuntimeError("Mono installation etc directory not found")
copy_tree(os.path.join(mono_etc_dir, "2.0"), os.path.join(target_mono_config_dir, "2.0")) copytree(os.path.join(mono_etc_dir, "2.0"), os.path.join(target_mono_config_dir, "2.0"))
copy_tree(os.path.join(mono_etc_dir, "4.0"), os.path.join(target_mono_config_dir, "4.0")) copytree(os.path.join(mono_etc_dir, "4.0"), os.path.join(target_mono_config_dir, "4.0"))
copy_tree(os.path.join(mono_etc_dir, "4.5"), os.path.join(target_mono_config_dir, "4.5")) copytree(os.path.join(mono_etc_dir, "4.5"), os.path.join(target_mono_config_dir, "4.5"))
if os.path.isdir(os.path.join(mono_etc_dir, "mconfig")): if os.path.isdir(os.path.join(mono_etc_dir, "mconfig")):
copy_tree(os.path.join(mono_etc_dir, "mconfig"), os.path.join(target_mono_config_dir, "mconfig")) copytree(os.path.join(mono_etc_dir, "mconfig"), os.path.join(target_mono_config_dir, "mconfig"))
for file in glob(os.path.join(mono_etc_dir, "*")): for file in glob(os.path.join(mono_etc_dir, "*")):
if os.path.isfile(file): if os.path.isfile(file):

View File

@ -1,7 +1,6 @@
import os import os
import sys import sys
import platform import platform
from distutils.version import LooseVersion
def is_active(): def is_active():
@ -309,8 +308,14 @@ def configure(env):
# Link flags # Link flags
# HACK: Replaced use of now obsoleted distutils.version.LooseVersion with this simple method,
# which isn't bullet proof but should be sufficient here with "x.y.z" parameters.
# Alternatives imply adding more dependencies.
def version_tuple(v):
return tuple(map(int, (v.split("."))))
ndk_version = get_env_ndk_version(env["ANDROID_NDK_ROOT"]) ndk_version = get_env_ndk_version(env["ANDROID_NDK_ROOT"])
if ndk_version != None and LooseVersion(ndk_version) >= LooseVersion("17.1.4828580"): if ndk_version != None and version_tuple(ndk_version) >= version_tuple("17.1.4828580"):
env.Append(LINKFLAGS=["-Wl,--exclude-libs,libgcc.a", "-Wl,--exclude-libs,libatomic.a", "-nostdlib++"]) env.Append(LINKFLAGS=["-Wl,--exclude-libs,libgcc.a", "-Wl,--exclude-libs,libatomic.a", "-nostdlib++"])
else: else:
env.Append( env.Append(

View File

@ -323,7 +323,7 @@ bool JoypadOSX::configure_joypad(IOHIDDeviceRef p_device_ref, joypad *p_joy) {
if (vendor && product_id) { if (vendor && product_id) {
char uid[128]; char uid[128];
sprintf(uid, "%08x%08x%08x%08x", OSSwapHostToBigInt32(3), OSSwapHostToBigInt32(vendor), OSSwapHostToBigInt32(product_id), OSSwapHostToBigInt32(version)); snprintf(uid, 128, "%08x%08x%08x%08x", OSSwapHostToBigInt32(3), OSSwapHostToBigInt32(vendor), OSSwapHostToBigInt32(product_id), OSSwapHostToBigInt32(version));
input->joy_connection_changed(id, true, name, uid); input->joy_connection_changed(id, true, name, uid);
} else { } else {
//bluetooth device //bluetooth device

View File

@ -375,7 +375,7 @@ def configure(env):
import re import re
linker_version_str = subprocess.check_output([env.subst(env["LINK"]), "-Wl,--version"]).decode("utf-8") linker_version_str = subprocess.check_output([env.subst(env["LINK"]), "-Wl,--version"]).decode("utf-8")
gnu_ld_version = re.search("^GNU ld [^$]*(\d+\.\d+)$", linker_version_str, re.MULTILINE) gnu_ld_version = re.search(r"^GNU ld [^$]*(\d+\.\d+)$", linker_version_str, re.MULTILINE)
if not gnu_ld_version: if not gnu_ld_version:
print( print(
"Warning: Creating template binaries enabled for PCK embedding is currently only supported with GNU ld, not gold or LLD." "Warning: Creating template binaries enabled for PCK embedding is currently only supported with GNU ld, not gold or LLD."

View File

@ -854,8 +854,6 @@ void VoxelLightBaker::plot_light_directional(const Vector3 &p_direction, const C
float distance_adv = _get_normal_advance(light_axis); float distance_adv = _get_normal_advance(light_axis);
int success_count = 0;
Vector3 light_energy = Vector3(p_color.r, p_color.g, p_color.b) * p_energy * p_indirect_energy; Vector3 light_energy = Vector3(p_color.r, p_color.g, p_color.b) * p_energy * p_indirect_energy;
int idx = first_leaf; int idx = first_leaf;
@ -916,7 +914,6 @@ void VoxelLightBaker::plot_light_directional(const Vector3 &p_direction, const C
light->direct_accum[i][2] += light_energy.z * s; light->direct_accum[i][2] += light_energy.z * s;
} }
} }
success_count++;
} }
idx = light_data[idx].next_leaf; idx = light_data[idx].next_leaf;

View File

@ -137,7 +137,7 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector
Edge ignore_to_edge(-1, -1); Edge ignore_to_edge(-1, -1);
if (!_is_point_inside(from)) { if (!_is_point_inside(from)) {
float closest_dist = 1e20; float closest_dist = 1e20f;
Vector2 closest_point; Vector2 closest_point;
for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) { for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) {
@ -161,7 +161,7 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector
}; };
if (!_is_point_inside(to)) { if (!_is_point_inside(to)) {
float closest_dist = 1e20; float closest_dist = 1e20f;
Vector2 closest_point; Vector2 closest_point;
for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) { for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) {
@ -489,7 +489,7 @@ bool PolygonPathFinder::is_point_inside(const Vector2 &p_point) const {
} }
Vector2 PolygonPathFinder::get_closest_point(const Vector2 &p_point) const { Vector2 PolygonPathFinder::get_closest_point(const Vector2 &p_point) const {
float closest_dist = 1e20; float closest_dist = 1e20f;
Vector2 closest_point; Vector2 closest_point;
for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) { for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) {
@ -508,7 +508,7 @@ Vector2 PolygonPathFinder::get_closest_point(const Vector2 &p_point) const {
} }
} }
ERR_FAIL_COND_V(closest_dist == 1e20, Vector2()); ERR_FAIL_COND_V(Math::is_equal_approx(closest_dist, 1e20f), Vector2());
return closest_point; return closest_point;
} }

View File

@ -526,7 +526,6 @@ int PortalRoomsBSP::evaluate_room_split_plane(int p_room_a_id, int p_room_b_id,
int PortalRoomsBSP::evaluate_plane(const VSPortal *p_portal, const Plane &p_plane, const LocalVector<int32_t, int32_t> &p_room_ids, LocalVector<int32_t, int32_t> *r_room_ids_back, LocalVector<int32_t, int32_t> *r_room_ids_front) { int PortalRoomsBSP::evaluate_plane(const VSPortal *p_portal, const Plane &p_plane, const LocalVector<int32_t, int32_t> &p_room_ids, LocalVector<int32_t, int32_t> *r_room_ids_back, LocalVector<int32_t, int32_t> *r_room_ids_front) {
int rooms_front = 0; int rooms_front = 0;
int rooms_back = 0; int rooms_back = 0;
int rooms_split = 0;
if (r_room_ids_back) { if (r_room_ids_back) {
DEV_ASSERT(!r_room_ids_back->size()); DEV_ASSERT(!r_room_ids_back->size());
@ -622,8 +621,6 @@ int PortalRoomsBSP::evaluate_plane(const VSPortal *p_portal, const Plane &p_plan
if (r_room_ids_back) { if (r_room_ids_back) {
r_room_ids_back->push_back(rid); r_room_ids_back->push_back(rid);
} }
rooms_split++;
} }
#undef GODOT_BSP_PUSH_BACK #undef GODOT_BSP_PUSH_BACK

View File

@ -3272,10 +3272,6 @@ void VisualServerScene::_bake_gi_probe_light(const GIProbeDataHeader *header, co
float distance_adv = _get_normal_advance(light_axis); float distance_adv = _get_normal_advance(light_axis);
int success_count = 0;
// uint64_t us = OS::get_singleton()->get_ticks_usec();
for (int i = 0; i < p_leaf_count; i++) { for (int i = 0; i < p_leaf_count; i++) {
uint32_t idx = leaves[i]; uint32_t idx = leaves[i];
@ -3324,18 +3320,11 @@ void VisualServerScene::_bake_gi_probe_light(const GIProbeDataHeader *header, co
light->energy[0] += int32_t(light_r * att * ((cell->albedo >> 16) & 0xFF) / 255.0); light->energy[0] += int32_t(light_r * att * ((cell->albedo >> 16) & 0xFF) / 255.0);
light->energy[1] += int32_t(light_g * att * ((cell->albedo >> 8) & 0xFF) / 255.0); light->energy[1] += int32_t(light_g * att * ((cell->albedo >> 8) & 0xFF) / 255.0);
light->energy[2] += int32_t(light_b * att * ((cell->albedo) & 0xFF) / 255.0); light->energy[2] += int32_t(light_b * att * ((cell->albedo) & 0xFF) / 255.0);
success_count++;
} }
} }
// print_line("BAKE TIME: " + rtos((OS::get_singleton()->get_ticks_usec() - us) / 1000000.0));
// print_line("valid cells: " + itos(success_count));
} break; } break;
case VS::LIGHT_OMNI: case VS::LIGHT_OMNI:
case VS::LIGHT_SPOT: { case VS::LIGHT_SPOT: {
// uint64_t us = OS::get_singleton()->get_ticks_usec();
Vector3 light_pos = light_cache.transform.origin; Vector3 light_pos = light_cache.transform.origin;
Vector3 spot_axis = -light_cache.transform.basis.get_axis(2).normalized(); Vector3 spot_axis = -light_cache.transform.basis.get_axis(2).normalized();
@ -3433,7 +3422,6 @@ void VisualServerScene::_bake_gi_probe_light(const GIProbeDataHeader *header, co
light->energy[2] += int32_t(light_b * att * ((cell->albedo) & 0xFF) / 255.0); light->energy[2] += int32_t(light_b * att * ((cell->albedo) & 0xFF) / 255.0);
} }
} }
//print_line("BAKE TIME: " + rtos((OS::get_singleton()->get_ticks_usec() - us) / 1000000.0));
} break; } break;
} }
} }

View File

@ -107,8 +107,6 @@ void VisualServerViewport::_draw_viewport(Viewport *p_viewport, ARVRInterface::E
} }
if (!p_viewport->hide_canvas) { if (!p_viewport->hide_canvas) {
int i = 0;
Map<Viewport::CanvasKey, Viewport::CanvasData *> canvas_map; Map<Viewport::CanvasKey, Viewport::CanvasData *> canvas_map;
Rect2 clip_rect(0, 0, p_viewport->size.x, p_viewport->size.y); Rect2 clip_rect(0, 0, p_viewport->size.x, p_viewport->size.y);
@ -117,8 +115,6 @@ void VisualServerViewport::_draw_viewport(Viewport *p_viewport, ARVRInterface::E
RasterizerCanvas::Light *lights_with_mask = nullptr; RasterizerCanvas::Light *lights_with_mask = nullptr;
Rect2 shadow_rect; Rect2 shadow_rect;
int light_count = 0;
for (Map<RID, Viewport::CanvasData>::Element *E = p_viewport->canvas_map.front(); E; E = E->next()) { for (Map<RID, Viewport::CanvasData>::Element *E = p_viewport->canvas_map.front(); E; E = E->next()) {
VisualServerCanvas::Canvas *canvas = static_cast<VisualServerCanvas::Canvas *>(E->get().canvas); VisualServerCanvas::Canvas *canvas = static_cast<VisualServerCanvas::Canvas *>(E->get().canvas);
@ -164,8 +160,6 @@ void VisualServerViewport::_draw_viewport(Viewport *p_viewport, ARVRInterface::E
cl->mask_next_ptr = lights_with_mask; cl->mask_next_ptr = lights_with_mask;
lights_with_mask = cl; lights_with_mask = cl;
} }
light_count++;
} }
VSG::canvas_render->light_internal_update(cl->light_internal, cl); VSG::canvas_render->light_internal_update(cl->light_internal, cl);
@ -235,7 +229,6 @@ void VisualServerViewport::_draw_viewport(Viewport *p_viewport, ARVRInterface::E
} }
VSG::canvas->render_canvas(canvas, xform, canvas_lights, lights_with_mask, clip_rect, canvas_layer_id); VSG::canvas->render_canvas(canvas, xform, canvas_lights, lights_with_mask, clip_rect, canvas_layer_id);
i++;
if (scenario_draw_canvas_bg && E->key().get_layer() >= scenario_canvas_max_layer) { if (scenario_draw_canvas_bg && E->key().get_layer() >= scenario_canvas_max_layer) {
if (!can_draw_3d) { if (!can_draw_3d) {

View File

@ -22,9 +22,14 @@ Includes some patches in the `patches` folder which have been sent upstream.
## certs ## certs
- Upstream: Mozilla, via https://github.com/bagder/ca-bundle - Upstream: Mozilla, via https://github.com/bagder/ca-bundle
- Version: git (8b263a18fca98ea371e54227837321c5cdaa1ba7, 2021) - Version: git (4d3fe6683f651d96be1bbef316b201e9b33b274d, 2024),
generated from mozilla-release changeset b8ea2342548b8571e58f9176d9555ccdb5ec199f
- License: MPL 2.0 - License: MPL 2.0
Files extracted from upstream source:
- `ca-bundle.crt` renamed to `ca-certificates.crt`
## cvtt ## cvtt

View File

@ -233,9 +233,9 @@ struct btSparseSdf
//int sz = sizeof(Cell); //int sz = sizeof(Cell);
if (ncells > m_clampCells) if (ncells > m_clampCells)
{ {
static int numResets = 0; //static int numResets = 0;
numResets++; //numResets++;
// printf("numResets=%d\n",numResets); //printf("numResets=%d\n",numResets);
Reset(); Reset();
} }

View File

@ -0,0 +1,17 @@
diff --git a/thirdparty/bullet/BulletSoftBody/btSparseSDF.h b/thirdparty/bullet/BulletSoftBody/btSparseSDF.h
index ae1288d9e6..243b80f8ae 100644
--- a/thirdparty/bullet/BulletSoftBody/btSparseSDF.h
+++ b/thirdparty/bullet/BulletSoftBody/btSparseSDF.h
@@ -233,9 +233,9 @@ struct btSparseSdf
//int sz = sizeof(Cell);
if (ncells > m_clampCells)
{
- static int numResets = 0;
- numResets++;
- // printf("numResets=%d\n",numResets);
+ //static int numResets = 0;
+ //numResets++;
+ //printf("numResets=%d\n",numResets);
Reset();
}

File diff suppressed because it is too large Load Diff

38
thirdparty/vhacd/0006-fix-gcc13.patch vendored Normal file
View File

@ -0,0 +1,38 @@
diff --git a/thirdparty/vhacd/inc/vhacdICHull.h b/thirdparty/vhacd/inc/vhacdICHull.h
index 132bdcfb3e..925584cf52 100644
--- a/thirdparty/vhacd/inc/vhacdICHull.h
+++ b/thirdparty/vhacd/inc/vhacdICHull.h
@@ -18,6 +18,10 @@
#include "vhacdManifoldMesh.h"
#include "vhacdVector.h"
+// -- GODOT start --
+#include <cstdint>
+// -- GODOT end --
+
namespace VHACD {
//! Incremental Convex Hull algorithm (cf. http://cs.smith.edu/~orourke/books/ftp.html ).
enum ICHullError {
diff --git a/thirdparty/vhacd/inc/vhacdManifoldMesh.h b/thirdparty/vhacd/inc/vhacdManifoldMesh.h
index a48f53c5c5..5eed4e13aa 100644
--- a/thirdparty/vhacd/inc/vhacdManifoldMesh.h
+++ b/thirdparty/vhacd/inc/vhacdManifoldMesh.h
@@ -18,6 +18,11 @@ All rights reserved.
#include "vhacdCircularList.h"
#include "vhacdSArray.h"
#include "vhacdVector.h"
+
+// -- GODOT start --
+#include <cstdint>
+// -- GODOT end --
+
namespace VHACD {
class TMMTriangle;
class TMMEdge;
@@ -139,4 +144,4 @@ private:
friend class ICHull;
};
}
-#endif // VHACD_MANIFOLD_MESH_H
\ No newline at end of file
+#endif // VHACD_MANIFOLD_MESH_H

View File

@ -18,6 +18,10 @@
#include "vhacdManifoldMesh.h" #include "vhacdManifoldMesh.h"
#include "vhacdVector.h" #include "vhacdVector.h"
// -- GODOT start --
#include <cstdint>
// -- GODOT end --
namespace VHACD { namespace VHACD {
//! Incremental Convex Hull algorithm (cf. http://cs.smith.edu/~orourke/books/ftp.html ). //! Incremental Convex Hull algorithm (cf. http://cs.smith.edu/~orourke/books/ftp.html ).
enum ICHullError { enum ICHullError {

View File

@ -18,6 +18,11 @@ All rights reserved.
#include "vhacdCircularList.h" #include "vhacdCircularList.h"
#include "vhacdSArray.h" #include "vhacdSArray.h"
#include "vhacdVector.h" #include "vhacdVector.h"
// -- GODOT start --
#include <cstdint>
// -- GODOT end --
namespace VHACD { namespace VHACD {
class TMMTriangle; class TMMTriangle;
class TMMEdge; class TMMEdge;
@ -139,4 +144,4 @@ private:
friend class ICHull; friend class ICHull;
}; };
} }
#endif // VHACD_MANIFOLD_MESH_H #endif // VHACD_MANIFOLD_MESH_H

View File

@ -2,8 +2,8 @@ short_name = "godot"
name = "Godot Engine" name = "Godot Engine"
major = 3 major = 3
minor = 4 minor = 4
patch = 5 patch = 6
status = "stable" status = "rc"
module_config = "" module_config = ""
year = 2022 year = 2022
website = "https://godotengine.org" website = "https://godotengine.org"