Merge pull request #53834 from akien-mga/3.x-cherrypicks
This commit is contained in:
commit
c15143e316
25 changed files with 156 additions and 116 deletions
2
.gitattributes
vendored
2
.gitattributes
vendored
|
@ -5,6 +5,8 @@ thirdparty/* linguist-vendored
|
|||
|
||||
# Normalize EOL for all files that Git considers text files
|
||||
* text=auto eol=lf
|
||||
# Except for bat files, which are Windows only files
|
||||
*.bat eol=crlf
|
||||
|
||||
# The above only works properly for Git 2.10+, so for older versions
|
||||
# we need to manually list the binary files we don't want modified.
|
||||
|
|
22
SConstruct
22
SConstruct
|
@ -297,21 +297,19 @@ env_base.Prepend(CPPPATH=["#"])
|
|||
env_base.platform_exporters = platform_exporters
|
||||
env_base.platform_apis = platform_apis
|
||||
|
||||
if env_base["use_precise_math_checks"]:
|
||||
env_base.Append(CPPDEFINES=["PRECISE_MATH_CHECKS"])
|
||||
# Build type defines - more platform-specific ones can be in detect.py.
|
||||
if env_base["target"] == "release_debug" or env_base["target"] == "debug":
|
||||
# DEBUG_ENABLED enables debugging *features* and debug-only code, which is intended
|
||||
# to give *users* extra debugging information for their game development.
|
||||
env_base.Append(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
|
||||
if env_base["target"] == "debug":
|
||||
env_base.Append(CPPDEFINES=["DEBUG_MEMORY_ALLOC", "DISABLE_FORCED_INLINE"])
|
||||
# DEV_ENABLED enables *engine developer* code which should only be compiled for those
|
||||
# working on the engine itself.
|
||||
env_base.Append(CPPDEFINES=["DEV_ENABLED"])
|
||||
|
||||
# The two options below speed up incremental builds, but reduce the certainty that all files
|
||||
# will properly be rebuilt. As such, we only enable them for debug (dev) builds, not release.
|
||||
|
||||
# To decide whether to rebuild a file, use the MD5 sum only if the timestamp has changed.
|
||||
# http://scons.org/doc/production/HTML/scons-user/ch06.html#idm139837621851792
|
||||
env_base.Decider("MD5-timestamp")
|
||||
# Use cached implicit dependencies by default. Can be overridden by specifying `--implicit-deps-changed` in the command line.
|
||||
# http://scons.org/doc/production/HTML/scons-user/ch06s04.html
|
||||
env_base.SetOption("implicit_cache", 1)
|
||||
if env_base["use_precise_math_checks"]:
|
||||
env_base.Append(CPPDEFINES=["PRECISE_MATH_CHECKS"])
|
||||
|
||||
if env_base["no_editor_splash"]:
|
||||
env_base.Append(CPPDEFINES=["NO_EDITOR_SPLASH"])
|
||||
|
|
|
@ -113,7 +113,7 @@ Dictionary Engine::get_version_info() const {
|
|||
static Array array_from_info(const char *const *info_list) {
|
||||
Array arr;
|
||||
for (int i = 0; info_list[i] != nullptr; i++) {
|
||||
arr.push_back(info_list[i]);
|
||||
arr.push_back(String::utf8(info_list[i]));
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
@ -121,7 +121,7 @@ static Array array_from_info(const char *const *info_list) {
|
|||
static Array array_from_info_count(const char *const *info_list, int info_count) {
|
||||
Array arr;
|
||||
for (int i = 0; i < info_count; i++) {
|
||||
arr.push_back(info_list[i]);
|
||||
arr.push_back(String::utf8(info_list[i]));
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
@ -142,14 +142,14 @@ Array Engine::get_copyright_info() const {
|
|||
for (int component_index = 0; component_index < COPYRIGHT_INFO_COUNT; component_index++) {
|
||||
const ComponentCopyright &cp_info = COPYRIGHT_INFO[component_index];
|
||||
Dictionary component_dict;
|
||||
component_dict["name"] = cp_info.name;
|
||||
component_dict["name"] = String::utf8(cp_info.name);
|
||||
Array parts;
|
||||
for (int i = 0; i < cp_info.part_count; i++) {
|
||||
const ComponentCopyrightPart &cp_part = cp_info.parts[i];
|
||||
Dictionary part_dict;
|
||||
part_dict["files"] = array_from_info_count(cp_part.files, cp_part.file_count);
|
||||
part_dict["copyright"] = array_from_info_count(cp_part.copyright_statements, cp_part.copyright_count);
|
||||
part_dict["license"] = cp_part.license;
|
||||
part_dict["license"] = String::utf8(cp_part.license);
|
||||
parts.push_back(part_dict);
|
||||
}
|
||||
component_dict["parts"] = parts;
|
||||
|
|
|
@ -59,10 +59,9 @@
|
|||
|
||||
#endif
|
||||
|
||||
//should always inline, except in some cases because it makes debugging harder
|
||||
// Should always inline, except in dev builds because it makes debugging harder.
|
||||
#ifndef _FORCE_INLINE_
|
||||
|
||||
#ifdef DISABLE_FORCED_INLINE
|
||||
#ifdef DEV_ENABLED
|
||||
#define _FORCE_INLINE_ inline
|
||||
#else
|
||||
#define _FORCE_INLINE_ _ALWAYS_INLINE_
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
The color the character will be drawn with.
|
||||
</member>
|
||||
<member name="elapsed_time" type="float" setter="set_elapsed_time" getter="get_elapsed_time" default="0.0">
|
||||
The time elapsed since the [RichTextLabel] was added to the scene tree (in seconds). Time stops when the project is paused, unless the [RichTextLabel]'s [member Node.pause_mode] is set to [constant Node.PAUSE_MODE_PROCESS].
|
||||
The time elapsed since the [RichTextLabel] was added to the scene tree (in seconds). Time stops when the [RichTextLabel] is paused (see [member Node.pause_mode]). Resets when the text in the [RichTextLabel] is changed.
|
||||
[b]Note:[/b] Time still passes while the [RichTextLabel] is hidden.
|
||||
</member>
|
||||
<member name="env" type="Dictionary" setter="set_environment" getter="get_environment" default="{}">
|
||||
|
|
|
@ -1611,19 +1611,25 @@ void EditorNode::restart_editor() {
|
|||
}
|
||||
|
||||
void EditorNode::_save_all_scenes() {
|
||||
bool all_saved = true;
|
||||
for (int i = 0; i < editor_data.get_edited_scene_count(); i++) {
|
||||
Node *scene = editor_data.get_edited_scene_root(i);
|
||||
if (scene && scene->get_filename() != "" && DirAccess::exists(scene->get_filename().get_base_dir())) {
|
||||
if (scene) {
|
||||
if (scene->get_filename() != "" && DirAccess::exists(scene->get_filename().get_base_dir())) {
|
||||
if (i != editor_data.get_edited_scene()) {
|
||||
_save_scene(scene->get_filename(), i);
|
||||
} else {
|
||||
_save_scene_with_preview(scene->get_filename());
|
||||
}
|
||||
} else {
|
||||
show_warning(TTR("Could not save one or more scenes!"), TTR("Save All Scenes"));
|
||||
all_saved = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!all_saved) {
|
||||
show_warning(TTR("Could not save one or more scenes!"), TTR("Save All Scenes"));
|
||||
}
|
||||
_save_default_environment();
|
||||
}
|
||||
|
||||
|
|
|
@ -3540,7 +3540,7 @@ void SpatialEditorViewport::assign_pending_data_pointers(Spatial *p_preview_node
|
|||
}
|
||||
|
||||
Vector3 SpatialEditorViewport::_get_instance_position(const Point2 &p_pos) const {
|
||||
const float MAX_DISTANCE = 10;
|
||||
const float MAX_DISTANCE = 50.0;
|
||||
|
||||
Vector3 world_ray = _get_ray(p_pos);
|
||||
Vector3 world_pos = _get_ray_pos(p_pos);
|
||||
|
@ -5972,7 +5972,7 @@ void SpatialEditor::snap_selected_nodes_to_floor() {
|
|||
// We add a bit of margin to the from position to avoid it from snapping
|
||||
// when the spatial is already on a floor and there's another floor under
|
||||
// it
|
||||
from = from + Vector3(0.0, 0.2, 0.0);
|
||||
from = from + Vector3(0.0, 1, 0.0);
|
||||
|
||||
Dictionary d;
|
||||
|
||||
|
@ -5988,7 +5988,7 @@ void SpatialEditor::snap_selected_nodes_to_floor() {
|
|||
Array keys = snap_data.keys();
|
||||
|
||||
// The maximum height an object can travel to be snapped
|
||||
const float max_snap_height = 20.0;
|
||||
const float max_snap_height = 500.0;
|
||||
|
||||
// Will be set to `true` if at least one node from the selection was successfully snapped
|
||||
bool snapped_to_floor = false;
|
||||
|
|
|
@ -202,12 +202,10 @@ def configure(env):
|
|||
env.Append(CPPDEFINES=["NDEBUG"])
|
||||
if can_vectorize:
|
||||
env.Append(CCFLAGS=["-ftree-vectorize"])
|
||||
if env["target"] == "release_debug":
|
||||
env.Append(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
elif env["target"] == "debug":
|
||||
env.Append(LINKFLAGS=["-O0"])
|
||||
env.Append(CCFLAGS=["-O0", "-g", "-fno-limit-debug-info"])
|
||||
env.Append(CPPDEFINES=["_DEBUG", "DEBUG_ENABLED", "DEV_ENABLED"])
|
||||
env.Append(CPPDEFINES=["_DEBUG"])
|
||||
env.Append(CPPFLAGS=["-UNDEBUG"])
|
||||
|
||||
# Compiler configuration
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
ext.versions = [
|
||||
androidGradlePlugin: '4.2.2',
|
||||
androidGradlePlugin: '7.0.3',
|
||||
compileSdk : 30,
|
||||
minSdk : 19,
|
||||
targetSdk : 30,
|
||||
buildTools : '30.0.3',
|
||||
kotlinVersion : '1.5.10',
|
||||
fragmentVersion : '1.3.6',
|
||||
javaVersion : 1.8,
|
||||
javaVersion : 11,
|
||||
ndkVersion : '21.4.7075529' // Also update 'platform/android/detect.py#get_project_ndk_version()' when this is updated.
|
||||
|
||||
]
|
||||
|
|
Binary file not shown.
|
@ -1,6 +1,5 @@
|
|||
#Wed Jun 23 23:42:22 PDT 2021
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
|
||||
distributionPath=wrapper/dists
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
53
platform/android/java/gradlew
vendored
53
platform/android/java/gradlew
vendored
|
@ -1,5 +1,21 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
#
|
||||
# Copyright 2015 the original author or authors.
|
||||
#
|
||||
# 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
|
||||
#
|
||||
# https://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.
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## Gradle start up script for UN*X
|
||||
|
@ -28,7 +44,7 @@ APP_NAME="Gradle"
|
|||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS=""
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
@ -66,6 +82,7 @@ esac
|
|||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
|
@ -109,10 +126,11 @@ if $darwin; then
|
|||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
|
@ -138,19 +156,19 @@ if $cygwin ; then
|
|||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
i=`expr $i + 1`
|
||||
done
|
||||
case $i in
|
||||
(0) set -- ;;
|
||||
(1) set -- "$args0" ;;
|
||||
(2) set -- "$args0" "$args1" ;;
|
||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
0) set -- ;;
|
||||
1) set -- "$args0" ;;
|
||||
2) set -- "$args0" "$args1" ;;
|
||||
3) set -- "$args0" "$args1" "$args2" ;;
|
||||
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
|
@ -159,14 +177,9 @@ save () {
|
|||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||
echo " "
|
||||
}
|
||||
APP_ARGS=$(save "$@")
|
||||
APP_ARGS=`save "$@"`
|
||||
|
||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||
|
||||
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
||||
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
||||
cd "$(dirname "$0")"
|
||||
fi
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
|
|
43
platform/android/java/gradlew.bat
vendored
43
platform/android/java/gradlew.bat
vendored
|
@ -1,3 +1,19 @@
|
|||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
|
@ -13,15 +29,18 @@ if "%DIRNAME%" == "" set DIRNAME=.
|
|||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS=
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
@ -35,7 +54,7 @@ goto fail
|
|||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
|
@ -45,28 +64,14 @@ echo location of your Java installation.
|
|||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windows variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
|
|
|
@ -57,12 +57,9 @@ def configure(env):
|
|||
env.Append(CCFLAGS=["-Os", "-ftree-vectorize"])
|
||||
env.Append(LINKFLAGS=["-Os"])
|
||||
|
||||
if env["target"] == "release_debug":
|
||||
env.Append(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
|
||||
elif env["target"] == "debug":
|
||||
env.Append(CCFLAGS=["-gdwarf-2", "-O0"])
|
||||
env.Append(CPPDEFINES=["_DEBUG", ("DEBUG", 1), "DEBUG_ENABLED", "DEV_ENABLED"])
|
||||
env.Append(CPPDEFINES=["_DEBUG", ("DEBUG", 1)])
|
||||
|
||||
if env["use_lto"]:
|
||||
env.Append(CCFLAGS=["-flto"])
|
||||
|
|
|
@ -76,12 +76,9 @@ def configure(env):
|
|||
env.Append(LINKFLAGS=["-Os"])
|
||||
|
||||
if env["target"] == "release_debug":
|
||||
env.Append(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
# Retain function names for backtraces at the cost of file size.
|
||||
env.Append(LINKFLAGS=["--profiling-funcs"])
|
||||
else: # "debug"
|
||||
env.Append(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
env.Append(CPPDEFINES=["DEV_ENABLED"])
|
||||
env.Append(CCFLAGS=["-O1", "-g"])
|
||||
env.Append(LINKFLAGS=["-O1", "-g"])
|
||||
env["use_assertions"] = True
|
||||
|
|
|
@ -58,15 +58,11 @@ def configure(env):
|
|||
elif env["optimize"] == "size": # optimize for size
|
||||
env.Prepend(CCFLAGS=["-Os"])
|
||||
|
||||
env.Prepend(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
|
||||
if env["debug_symbols"]:
|
||||
env.Prepend(CCFLAGS=["-g2"])
|
||||
|
||||
elif env["target"] == "debug":
|
||||
env.Prepend(CCFLAGS=["-g3"])
|
||||
env.Prepend(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
env.Prepend(CPPDEFINES=["DEV_ENABLED"])
|
||||
env.Prepend(LINKFLAGS=["-Xlinker", "-no_deduplicate"])
|
||||
|
||||
## Architecture
|
||||
|
|
|
@ -66,15 +66,12 @@ def configure(env):
|
|||
env.Prepend(CCFLAGS=["-O2"])
|
||||
elif env["optimize"] == "size": # optimize for size
|
||||
env.Prepend(CCFLAGS=["-Os"])
|
||||
env.Prepend(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
|
||||
if env["debug_symbols"]:
|
||||
env.Prepend(CCFLAGS=["-g2"])
|
||||
|
||||
elif env["target"] == "debug":
|
||||
env.Prepend(CCFLAGS=["-g3"])
|
||||
env.Prepend(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
env.Prepend(CPPDEFINES=["DEV_ENABLED"])
|
||||
env.Append(LINKFLAGS=["-rdynamic"])
|
||||
|
||||
## Architecture
|
||||
|
|
|
@ -63,15 +63,12 @@ def configure(env):
|
|||
elif env["target"] == "release_debug":
|
||||
env.Append(CCFLAGS=["/MD"])
|
||||
env.Append(LINKFLAGS=["/SUBSYSTEM:CONSOLE"])
|
||||
env.Append(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
if env["optimize"] != "none":
|
||||
env.Append(CCFLAGS=["/O2", "/Zi"])
|
||||
|
||||
elif env["target"] == "debug":
|
||||
env.Append(CCFLAGS=["/Zi"])
|
||||
env.Append(CCFLAGS=["/MDd"])
|
||||
env.Append(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
env.Append(CPPDEFINES=["DEV_ENABLED"])
|
||||
env.Append(LINKFLAGS=["/SUBSYSTEM:CONSOLE"])
|
||||
env.Append(LINKFLAGS=["/DEBUG"])
|
||||
|
||||
|
|
|
@ -193,13 +193,10 @@ def configure_msvc(env, manual_msvc_config):
|
|||
elif env["optimize"] == "size": # optimize for size
|
||||
env.Append(CCFLAGS=["/O1"])
|
||||
env.Append(LINKFLAGS=["/OPT:REF"])
|
||||
env.AppendUnique(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
env.Append(LINKFLAGS=["/SUBSYSTEM:CONSOLE"])
|
||||
|
||||
elif env["target"] == "debug":
|
||||
env.AppendUnique(CCFLAGS=["/Zi", "/FS", "/Od", "/EHsc"])
|
||||
env.AppendUnique(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
env.AppendUnique(CPPDEFINES=["DEV_ENABLED"])
|
||||
env.Append(LINKFLAGS=["/SUBSYSTEM:CONSOLE"])
|
||||
env.Append(LINKFLAGS=["/DEBUG"])
|
||||
|
||||
|
@ -324,7 +321,6 @@ def configure_mingw(env):
|
|||
|
||||
elif env["target"] == "release_debug":
|
||||
env.Append(CCFLAGS=["-O2"])
|
||||
env.Append(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
if env["debug_symbols"]:
|
||||
env.Prepend(CCFLAGS=["-g2"])
|
||||
if env["optimize"] == "speed": # optimize for speed (default)
|
||||
|
@ -334,8 +330,6 @@ def configure_mingw(env):
|
|||
|
||||
elif env["target"] == "debug":
|
||||
env.Append(CCFLAGS=["-g3"])
|
||||
env.Append(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
env.Append(CPPDEFINES=["DEV_ENABLED"])
|
||||
|
||||
## Compiler configuration
|
||||
|
||||
|
|
|
@ -104,16 +104,12 @@ def configure(env):
|
|||
elif env["optimize"] == "size": # optimize for size
|
||||
env.Prepend(CCFLAGS=["-Os"])
|
||||
|
||||
env.Prepend(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
|
||||
if env["debug_symbols"]:
|
||||
env.Prepend(CCFLAGS=["-g2"])
|
||||
|
||||
elif env["target"] == "debug":
|
||||
env.Prepend(CCFLAGS=["-ggdb"])
|
||||
env.Prepend(CCFLAGS=["-g3"])
|
||||
env.Prepend(CPPDEFINES=["DEBUG_ENABLED"])
|
||||
env.Prepend(CPPDEFINES=["DEV_ENABLED"])
|
||||
env.Append(LINKFLAGS=["-rdynamic"])
|
||||
|
||||
## Architecture
|
||||
|
|
|
@ -267,7 +267,7 @@ void VehicleWheel::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("get_steering"), &VehicleWheel::get_steering);
|
||||
|
||||
ADD_GROUP("Per-Wheel Motion", "");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "engine_force", PROPERTY_HINT_RANGE, "0.00,1024.0,0.01,or_greater"), "set_engine_force", "get_engine_force");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "engine_force", PROPERTY_HINT_RANGE, "-1024,1024.0,0.01,or_greater"), "set_engine_force", "get_engine_force");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "brake", PROPERTY_HINT_RANGE, "0.0,1.0,0.01"), "set_brake", "get_brake");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "steering", PROPERTY_HINT_RANGE, "-180,180.0,0.01"), "set_steering", "get_steering");
|
||||
ADD_GROUP("VehicleBody Motion", "");
|
||||
|
@ -935,7 +935,7 @@ void VehicleBody::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("get_steering"), &VehicleBody::get_steering);
|
||||
|
||||
ADD_GROUP("Motion", "");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "engine_force", PROPERTY_HINT_RANGE, "0.00,1024.0,0.01,or_greater"), "set_engine_force", "get_engine_force");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "engine_force", PROPERTY_HINT_RANGE, "-1024,1024.0,0.01,or_greater"), "set_engine_force", "get_engine_force");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "brake", PROPERTY_HINT_RANGE, "0.0,1.0,0.01"), "set_brake", "get_brake");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "steering", PROPERTY_HINT_RANGE, "-180,180.0,0.01"), "set_steering", "get_steering");
|
||||
}
|
||||
|
|
|
@ -341,7 +341,11 @@ void TextureProgress::draw_nine_patch_stretched(const Ref<Texture> &p_texture, F
|
|||
} break;
|
||||
case FILL_BILINEAR_LEFT_AND_RIGHT: {
|
||||
double center_mapped_from_real_width = (width_total * 0.5 - topleft.x) / max_middle_real_size * max_middle_texture_size + topleft.x;
|
||||
double drift_from_unscaled_center = (src_rect.size.x * 0.5 - center_mapped_from_real_width) * (last_section_size - first_section_size) / (bottomright.x - topleft.x);
|
||||
double drift_from_unscaled_center = 0;
|
||||
if (bottomright.y != topleft.y) { // To avoid division by zero.
|
||||
drift_from_unscaled_center = (src_rect.size.x * 0.5 - center_mapped_from_real_width) * (last_section_size - first_section_size) / (bottomright.x - topleft.x);
|
||||
}
|
||||
|
||||
src_rect.position.x += center_mapped_from_real_width + drift_from_unscaled_center - width_texture * 0.5;
|
||||
src_rect.size.x = width_texture;
|
||||
dst_rect.position.x += (width_total - width_filled) * 0.5;
|
||||
|
@ -351,7 +355,11 @@ void TextureProgress::draw_nine_patch_stretched(const Ref<Texture> &p_texture, F
|
|||
} break;
|
||||
case FILL_BILINEAR_TOP_AND_BOTTOM: {
|
||||
double center_mapped_from_real_width = (width_total * 0.5 - topleft.y) / max_middle_real_size * max_middle_texture_size + topleft.y;
|
||||
double drift_from_unscaled_center = (src_rect.size.y * 0.5 - center_mapped_from_real_width) * (last_section_size - first_section_size) / (bottomright.y - topleft.y);
|
||||
double drift_from_unscaled_center = 0;
|
||||
if (bottomright.y != topleft.y) { // To avoid division by zero.
|
||||
drift_from_unscaled_center = (src_rect.size.y * 0.5 - center_mapped_from_real_width) * (last_section_size - first_section_size) / (bottomright.y - topleft.y);
|
||||
}
|
||||
|
||||
src_rect.position.y += center_mapped_from_real_width + drift_from_unscaled_center - width_texture * 0.5;
|
||||
src_rect.size.y = width_texture;
|
||||
dst_rect.position.y += (width_total - width_filled) * 0.5;
|
||||
|
|
10
thirdparty/README.md
vendored
10
thirdparty/README.md
vendored
|
@ -270,11 +270,13 @@ File extracted from upstream release tarball:
|
|||
- All `*.h` from `include/mbedtls/` to `thirdparty/mbedtls/include/mbedtls/`.
|
||||
- All `*.c` from `library/` to `thirdparty/mbedtls/library/`.
|
||||
- `LICENSE` and `apache-2.0.txt` files.
|
||||
- Applied the patch in `thirdparty/mbedtls/patches/1453.diff` (upstream PR:
|
||||
- Applied the patch in `patches/1453.diff` (upstream PR:
|
||||
https://github.com/ARMmbed/mbedtls/pull/1453).
|
||||
- Applied the patch in `thirdparty/mbedtls/patches/padlock.diff`. This disables
|
||||
VIA padlock support which defines a symbol `unsupported` which clashes with
|
||||
a pre-defined symbol.
|
||||
- Applied the patch in `patches/padlock.diff`. This disables VIA padlock
|
||||
support which defines a symbol `unsupported` which clashes with a
|
||||
pre-defined symbol.
|
||||
- Applied the patch in `patches/pr4948-fix-clang12-opt.patch`. Upstream bugfix
|
||||
from PR 4948 to fix a bug caused by Clang 12 optimizations.
|
||||
- Added 2 files `godot_core_mbedtls_platform.c` and `godot_core_mbedtls_config.h`
|
||||
providing configuration for light bundling with core.
|
||||
|
||||
|
|
4
thirdparty/mbedtls/include/mbedtls/bn_mul.h
vendored
4
thirdparty/mbedtls/include/mbedtls/bn_mul.h
vendored
|
@ -256,8 +256,8 @@
|
|||
"addq $8, %%rdi\n"
|
||||
|
||||
#define MULADDC_STOP \
|
||||
: "+c" (c), "+D" (d), "+S" (s) \
|
||||
: "b" (b) \
|
||||
: "+c" (c), "+D" (d), "+S" (s), "+m" (*(uint64_t (*)[16]) d) \
|
||||
: "b" (b), "m" (*(const uint64_t (*)[16]) s) \
|
||||
: "rax", "rdx", "r8" \
|
||||
);
|
||||
|
||||
|
|
36
thirdparty/mbedtls/patches/pr4948-fix-clang12-opt.patch
vendored
Normal file
36
thirdparty/mbedtls/patches/pr4948-fix-clang12-opt.patch
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
From 7c847235e8f0e0b877c505f19733b417bb65ff2e Mon Sep 17 00:00:00 2001
|
||||
From: Gilles Peskine <Gilles.Peskine@arm.com>
|
||||
Date: Tue, 14 Sep 2021 00:13:05 +0200
|
||||
Subject: [PATCH] x86_64 MULADDC assembly: add missing constraints about memory
|
||||
|
||||
MULADDC_CORE reads from (%%rsi) and writes to (%%rdi). This fragment is
|
||||
repeated up to 16 times, and %%rsi and %%rdi are s and d on entry
|
||||
respectively. Hence the complete asm statement reads 16 64-bit words
|
||||
from memory starting at s, and writes 16 64-bit words starting at d.
|
||||
|
||||
Without any declaration of modified memory, Clang 12 and Clang 13 generated
|
||||
non-working code for mbedtls_mpi_mod_exp. The constraints make the unit
|
||||
tests pass with Clang 12.
|
||||
|
||||
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
|
||||
---
|
||||
include/mbedtls/bn_mul.h | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/include/mbedtls/bn_mul.h b/include/mbedtls/bn_mul.h
|
||||
index 6f1201bf50a..f84f9650ddc 100644
|
||||
--- a/include/mbedtls/bn_mul.h
|
||||
+++ b/include/mbedtls/bn_mul.h
|
||||
@@ -256,9 +256,9 @@
|
||||
"addq $8, %%rdi\n"
|
||||
|
||||
#define MULADDC_STOP \
|
||||
- : "+c" (c), "+D" (d), "+S" (s) \
|
||||
- : "b" (b) \
|
||||
- : "rax", "rdx", "r8" \
|
||||
+ : "+c" (c), "+D" (d), "+S" (s), "+m" (*(uint64_t (*)[16]) d) \
|
||||
+ : "b" (b), "m" (*(const uint64_t (*)[16]) s) \
|
||||
+ : "rax", "rdx", "r8" \
|
||||
);
|
||||
|
||||
#endif /* AMD64 */
|
Loading…
Reference in a new issue