Compare commits
5 Commits
4.5.1-stab
...
4.5
| Author | SHA1 | Date | |
|---|---|---|---|
| 44c3f6a55a | |||
| bc382d11de | |||
| 6d411f0c0d | |||
| 20c59d6924 | |||
| 8351a28101 |
@ -2357,6 +2357,12 @@ void Image::initialize_data(const char **p_xpm) {
|
|||||||
} break;
|
} break;
|
||||||
case READING_PIXELS: {
|
case READING_PIXELS: {
|
||||||
int y = line - colormap_size - 1;
|
int y = line - colormap_size - 1;
|
||||||
|
#ifdef __MINGW32__
|
||||||
|
// False positive only with MinGW-GCC. Don't silence for regular GCC/Clang
|
||||||
|
// as this is code that _could_ exhibit actual overflow bugs.
|
||||||
|
GODOT_GCC_WARNING_PUSH
|
||||||
|
GODOT_GCC_PRAGMA(GCC diagnostic warning "-Wstringop-overflow=0")
|
||||||
|
#endif
|
||||||
for (int x = 0; x < size_width; x++) {
|
for (int x = 0; x < size_width; x++) {
|
||||||
char pixelstr[6] = { 0, 0, 0, 0, 0, 0 };
|
char pixelstr[6] = { 0, 0, 0, 0, 0, 0 };
|
||||||
for (int i = 0; i < pixelchars; i++) {
|
for (int i = 0; i < pixelchars; i++) {
|
||||||
@ -2371,6 +2377,9 @@ void Image::initialize_data(const char **p_xpm) {
|
|||||||
}
|
}
|
||||||
_put_pixelb(x, y, pixel_size, data_write, pixel);
|
_put_pixelb(x, y, pixel_size, data_write, pixel);
|
||||||
}
|
}
|
||||||
|
#ifdef __MINGW32__
|
||||||
|
GODOT_GCC_WARNING_POP
|
||||||
|
#endif
|
||||||
|
|
||||||
if (y == (size_height - 1)) {
|
if (y == (size_height - 1)) {
|
||||||
status = DONE;
|
status = DONE;
|
||||||
|
|||||||
@ -30,7 +30,9 @@
|
|||||||
|
|
||||||
#include "geometry_2d.h"
|
#include "geometry_2d.h"
|
||||||
|
|
||||||
|
GODOT_GCC_WARNING_PUSH_AND_IGNORE("-Walloc-zero")
|
||||||
#include "thirdparty/clipper2/include/clipper2/clipper.h"
|
#include "thirdparty/clipper2/include/clipper2/clipper.h"
|
||||||
|
GODOT_GCC_WARNING_POP
|
||||||
#include "thirdparty/misc/polypartition.h"
|
#include "thirdparty/misc/polypartition.h"
|
||||||
#define STB_RECT_PACK_IMPLEMENTATION
|
#define STB_RECT_PACK_IMPLEMENTATION
|
||||||
#include "thirdparty/misc/stb_rect_pack.h"
|
#include "thirdparty/misc/stb_rect_pack.h"
|
||||||
|
|||||||
@ -5855,6 +5855,15 @@ String String::unquote() const {
|
|||||||
return substr(1, length() - 2);
|
return substr(1, length() - 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MinGW-GCC false positives because CharStringT::length() is int (so possibly < 0).
|
||||||
|
// Don't silence for regular GCC/Clang as this is code that _could_ exhibit actual overflow bugs.
|
||||||
|
#ifdef __MINGW32__
|
||||||
|
GODOT_GCC_WARNING_PUSH
|
||||||
|
GODOT_GCC_PRAGMA(GCC diagnostic warning "-Wstringop-overflow=0")
|
||||||
|
GODOT_GCC_WARNING_IGNORE("-Warray-bounds")
|
||||||
|
GODOT_GCC_WARNING_IGNORE("-Wrestrict")
|
||||||
|
#endif
|
||||||
|
|
||||||
Vector<uint8_t> String::to_ascii_buffer() const {
|
Vector<uint8_t> String::to_ascii_buffer() const {
|
||||||
const String *s = this;
|
const String *s = this;
|
||||||
if (s->is_empty()) {
|
if (s->is_empty()) {
|
||||||
@ -5903,6 +5912,10 @@ Vector<uint8_t> String::to_utf16_buffer() const {
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __MINGW32__
|
||||||
|
GODOT_GCC_WARNING_POP
|
||||||
|
#endif
|
||||||
|
|
||||||
Vector<uint8_t> String::to_utf32_buffer() const {
|
Vector<uint8_t> String::to_utf32_buffer() const {
|
||||||
const String *s = this;
|
const String *s = this;
|
||||||
if (s->is_empty()) {
|
if (s->is_empty()) {
|
||||||
|
|||||||
@ -32,6 +32,8 @@
|
|||||||
|
|
||||||
#include "core/templates/span.h"
|
#include "core/templates/span.h"
|
||||||
|
|
||||||
|
GODOT_GCC_WARNING_PUSH_AND_IGNORE("-Warray-bounds")
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A high performance Vector of fixed capacity.
|
* A high performance Vector of fixed capacity.
|
||||||
* Especially useful if you need to create an array on the stack, to
|
* Especially useful if you need to create an array on the stack, to
|
||||||
@ -163,3 +165,5 @@ public:
|
|||||||
_FORCE_INLINE_ constexpr const T *begin() const { return ptr(); }
|
_FORCE_INLINE_ constexpr const T *begin() const { return ptr(); }
|
||||||
_FORCE_INLINE_ constexpr const T *end() const { return ptr() + _size; }
|
_FORCE_INLINE_ constexpr const T *end() const { return ptr() + _size; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
GODOT_GCC_WARNING_POP
|
||||||
|
|||||||
@ -19,11 +19,11 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>4.5.1</string>
|
<string>4.5.2</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>GODO</string>
|
<string>GODO</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>4.5.1</string>
|
<string>4.5.2</string>
|
||||||
<key>NSMicrophoneUsageDescription</key>
|
<key>NSMicrophoneUsageDescription</key>
|
||||||
<string>Microphone access is required to capture audio.</string>
|
<string>Microphone access is required to capture audio.</string>
|
||||||
<key>NSCameraUsageDescription</key>
|
<key>NSCameraUsageDescription</key>
|
||||||
|
|||||||
2
misc/dist/windows/godot.iss
vendored
2
misc/dist/windows/godot.iss
vendored
@ -1,5 +1,5 @@
|
|||||||
#define MyAppName "Godot Engine"
|
#define MyAppName "Godot Engine"
|
||||||
#define MyAppVersion "4.5.1"
|
#define MyAppVersion "4.5.2"
|
||||||
#define MyAppPublisher "Godot Engine contributors"
|
#define MyAppPublisher "Godot Engine contributors"
|
||||||
#define MyAppURL "https://godotengine.org/"
|
#define MyAppURL "https://godotengine.org/"
|
||||||
#define MyAppExeName "godot.exe"
|
#define MyAppExeName "godot.exe"
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
<Authors>Godot Engine contributors</Authors>
|
<Authors>Godot Engine contributors</Authors>
|
||||||
|
|
||||||
<PackageId>Godot.NET.Sdk</PackageId>
|
<PackageId>Godot.NET.Sdk</PackageId>
|
||||||
<Version>4.5.1</Version>
|
<Version>4.5.2</Version>
|
||||||
<PackageVersion>$(PackageVersion_Godot_NET_Sdk)</PackageVersion>
|
<PackageVersion>$(PackageVersion_Godot_NET_Sdk)</PackageVersion>
|
||||||
<RepositoryUrl>https://github.com/godotengine/godot/tree/master/modules/mono/editor/Godot.NET.Sdk</RepositoryUrl>
|
<RepositoryUrl>https://github.com/godotengine/godot/tree/master/modules/mono/editor/Godot.NET.Sdk</RepositoryUrl>
|
||||||
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
|
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
<Authors>Godot Engine contributors</Authors>
|
<Authors>Godot Engine contributors</Authors>
|
||||||
|
|
||||||
<PackageId>Godot.SourceGenerators</PackageId>
|
<PackageId>Godot.SourceGenerators</PackageId>
|
||||||
<Version>4.5.1</Version>
|
<Version>4.5.2</Version>
|
||||||
<PackageVersion>$(PackageVersion_Godot_SourceGenerators)</PackageVersion>
|
<PackageVersion>$(PackageVersion_Godot_SourceGenerators)</PackageVersion>
|
||||||
<RepositoryUrl>https://github.com/godotengine/godot/tree/master/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators</RepositoryUrl>
|
<RepositoryUrl>https://github.com/godotengine/godot/tree/master/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators</RepositoryUrl>
|
||||||
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
|
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
<Authors>Godot Engine contributors</Authors>
|
<Authors>Godot Engine contributors</Authors>
|
||||||
|
|
||||||
<PackageId>GodotSharp</PackageId>
|
<PackageId>GodotSharp</PackageId>
|
||||||
<Version>4.5.1</Version>
|
<Version>4.5.2</Version>
|
||||||
<PackageVersion>$(PackageVersion_GodotSharp)</PackageVersion>
|
<PackageVersion>$(PackageVersion_GodotSharp)</PackageVersion>
|
||||||
<RepositoryUrl>https://github.com/godotengine/godot/tree/master/modules/mono/glue/GodotSharp/GodotSharp</RepositoryUrl>
|
<RepositoryUrl>https://github.com/godotengine/godot/tree/master/modules/mono/glue/GodotSharp/GodotSharp</RepositoryUrl>
|
||||||
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
|
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
<Authors>Godot Engine contributors</Authors>
|
<Authors>Godot Engine contributors</Authors>
|
||||||
|
|
||||||
<PackageId>GodotSharpEditor</PackageId>
|
<PackageId>GodotSharpEditor</PackageId>
|
||||||
<Version>4.5.1</Version>
|
<Version>4.5.2</Version>
|
||||||
<PackageVersion>$(PackageVersion_GodotSharp)</PackageVersion>
|
<PackageVersion>$(PackageVersion_GodotSharp)</PackageVersion>
|
||||||
<RepositoryUrl>https://github.com/godotengine/godot/tree/master/modules/mono/glue/GodotSharp/GodotSharpEditor</RepositoryUrl>
|
<RepositoryUrl>https://github.com/godotengine/godot/tree/master/modules/mono/glue/GodotSharp/GodotSharpEditor</RepositoryUrl>
|
||||||
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
|
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
|
||||||
|
|||||||
@ -15,7 +15,7 @@ ext.versions = [
|
|||||||
// Also update 'platform/android/detect.py#get_ndk_version()' when this is updated.
|
// Also update 'platform/android/detect.py#get_ndk_version()' when this is updated.
|
||||||
ndkVersion : '28.1.13356709',
|
ndkVersion : '28.1.13356709',
|
||||||
splashscreenVersion: '1.0.1',
|
splashscreenVersion: '1.0.1',
|
||||||
openxrVendorsVersion: '4.1.1-stable'
|
openxrVendorsVersion: '4.2.0-stable',
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@ -192,6 +192,8 @@ dependencies {
|
|||||||
implementation "androidx.constraintlayout:constraintlayout:2.2.1"
|
implementation "androidx.constraintlayout:constraintlayout:2.2.1"
|
||||||
implementation "org.bouncycastle:bcprov-jdk15to18:1.78"
|
implementation "org.bouncycastle:bcprov-jdk15to18:1.78"
|
||||||
|
|
||||||
|
// Android XR dependencies
|
||||||
|
androidImplementation "org.godotengine:godot-openxr-vendors-androidxr:$versions.openxrVendorsVersion"
|
||||||
// Meta dependencies
|
// Meta dependencies
|
||||||
horizonosImplementation "org.godotengine:godot-openxr-vendors-meta:$versions.openxrVendorsVersion"
|
horizonosImplementation "org.godotengine:godot-openxr-vendors-meta:$versions.openxrVendorsVersion"
|
||||||
// Pico dependencies
|
// Pico dependencies
|
||||||
|
|||||||
42
platform/android/java/editor/src/android/AndroidManifest.xml
Normal file
42
platform/android/java/editor/src/android/AndroidManifest.xml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.software.xr.api.openxr"
|
||||||
|
android:required="false" />
|
||||||
|
|
||||||
|
<!-- 6dof motion controllers -->
|
||||||
|
<uses-feature android:name="android.hardware.xr.input.controller" android:required="false" />
|
||||||
|
|
||||||
|
<!-- Eye tracking -->
|
||||||
|
<uses-feature android:name="android.hardware.xr.input.eye_tracking" android:required="false" />
|
||||||
|
<uses-permission android:name="android.permission.EYE_TRACKING_FINE" />
|
||||||
|
|
||||||
|
<!-- Hand tracking -->
|
||||||
|
<uses-feature android:name="android.hardware.xr.input.hand_tracking" android:required="false" />
|
||||||
|
<uses-permission android:name="android.permission.HAND_TRACKING" />
|
||||||
|
|
||||||
|
<application>
|
||||||
|
<uses-native-library android:name="libopenxr.google.so" android:required="false" />
|
||||||
|
|
||||||
|
<property
|
||||||
|
android:name="android.window.PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED"
|
||||||
|
android:value="XR_BOUNDARY_TYPE_NO_RECOMMENDATION" />
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name=".GodotXRGame"
|
||||||
|
android:exported="false"
|
||||||
|
tools:node="merge">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<category android:name="org.khronos.openxr.intent.category.IMMERSIVE_HMD" />
|
||||||
|
</intent-filter>
|
||||||
|
<property
|
||||||
|
android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
|
||||||
|
android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED" />
|
||||||
|
</activity>
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
||||||
@ -33,6 +33,16 @@ package org.godotengine.editor
|
|||||||
/**
|
/**
|
||||||
* Primary window of the Godot Editor.
|
* Primary window of the Godot Editor.
|
||||||
*
|
*
|
||||||
* This is the implementation of the editor used when running on regular Android devices.
|
* This is the implementation of the editor used when running on Android devices.
|
||||||
*/
|
*/
|
||||||
open class GodotEditor : BaseGodotEditor()
|
open class GodotEditor : BaseGodotEditor() {
|
||||||
|
|
||||||
|
override fun getXRRuntimePermissions(): MutableSet<String> {
|
||||||
|
val xrRuntimePermissions = super.getXRRuntimePermissions()
|
||||||
|
|
||||||
|
xrRuntimePermissions.add("android.permission.EYE_TRACKING_FINE")
|
||||||
|
xrRuntimePermissions.add("android.permission.HAND_TRACKING")
|
||||||
|
|
||||||
|
return xrRuntimePermissions
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -110,6 +110,7 @@
|
|||||||
android:configChanges="layoutDirection|locale|orientation|keyboardHidden|screenSize|smallestScreenSize|density|keyboard|navigation|screenLayout|uiMode"
|
android:configChanges="layoutDirection|locale|orientation|keyboardHidden|screenSize|smallestScreenSize|density|keyboard|navigation|screenLayout|uiMode"
|
||||||
android:process=":GodotXRGame"
|
android:process=":GodotXRGame"
|
||||||
android:launchMode="singleTask"
|
android:launchMode="singleTask"
|
||||||
|
android:taskAffinity=":xr"
|
||||||
android:icon="@mipmap/ic_play_window"
|
android:icon="@mipmap/ic_play_window"
|
||||||
android:label="@string/godot_game_activity_name"
|
android:label="@string/godot_game_activity_name"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
|
|||||||
@ -68,11 +68,7 @@ import org.godotengine.godot.error.Error
|
|||||||
import org.godotengine.godot.utils.DialogUtils
|
import org.godotengine.godot.utils.DialogUtils
|
||||||
import org.godotengine.godot.utils.PermissionsUtil
|
import org.godotengine.godot.utils.PermissionsUtil
|
||||||
import org.godotengine.godot.utils.ProcessPhoenix
|
import org.godotengine.godot.utils.ProcessPhoenix
|
||||||
import org.godotengine.godot.utils.isNativeXRDevice
|
import org.godotengine.openxr.vendors.utils.*
|
||||||
import org.godotengine.godot.xr.HybridMode
|
|
||||||
import org.godotengine.godot.xr.getHybridAppLaunchMode
|
|
||||||
import org.godotengine.godot.xr.HYBRID_APP_PANEL_CATEGORY
|
|
||||||
import org.godotengine.godot.xr.HYBRID_APP_IMMERSIVE_CATEGORY
|
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -712,12 +708,8 @@ abstract class BaseGodotEditor : GodotActivity(), GameMenuFragment.GameMenuListe
|
|||||||
return isNativeXRDevice(applicationContext)
|
return isNativeXRDevice(applicationContext)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (featureTag == "horizonos") {
|
if (featureTag == BuildConfig.FLAVOR) {
|
||||||
return BuildConfig.FLAVOR == "horizonos"
|
return true
|
||||||
}
|
|
||||||
|
|
||||||
if (featureTag == "picoos") {
|
|
||||||
return BuildConfig.FLAVOR == "picoos"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.supportsFeature(featureTag)
|
return super.supportsFeature(featureTag)
|
||||||
|
|||||||
@ -38,8 +38,7 @@ import org.godotengine.godot.GodotLib
|
|||||||
import org.godotengine.godot.editor.utils.GameMenuUtils
|
import org.godotengine.godot.editor.utils.GameMenuUtils
|
||||||
import org.godotengine.godot.utils.PermissionsUtil
|
import org.godotengine.godot.utils.PermissionsUtil
|
||||||
import org.godotengine.godot.utils.ProcessPhoenix
|
import org.godotengine.godot.utils.ProcessPhoenix
|
||||||
import org.godotengine.godot.xr.HYBRID_APP_FEATURE
|
import org.godotengine.openxr.vendors.utils.*
|
||||||
import org.godotengine.godot.xr.isHybridAppEnabled
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base class for the Godot play windows.
|
* Base class for the Godot play windows.
|
||||||
|
|||||||
@ -43,11 +43,8 @@ import org.godotengine.editor.embed.GameMenuFragment
|
|||||||
import org.godotengine.godot.GodotLib
|
import org.godotengine.godot.GodotLib
|
||||||
import org.godotengine.godot.editor.utils.GameMenuUtils
|
import org.godotengine.godot.editor.utils.GameMenuUtils
|
||||||
import org.godotengine.godot.utils.ProcessPhoenix
|
import org.godotengine.godot.utils.ProcessPhoenix
|
||||||
import org.godotengine.godot.utils.isHorizonOSDevice
|
|
||||||
import org.godotengine.godot.utils.isNativeXRDevice
|
|
||||||
import org.godotengine.godot.xr.HYBRID_APP_PANEL_FEATURE
|
|
||||||
import org.godotengine.godot.xr.XRMode
|
import org.godotengine.godot.xr.XRMode
|
||||||
import org.godotengine.godot.xr.isHybridAppEnabled
|
import org.godotengine.openxr.vendors.utils.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Drives the 'run project' window of the Godot Editor.
|
* Drives the 'run project' window of the Godot Editor.
|
||||||
|
|||||||
@ -151,6 +151,7 @@ Error MultiplayerPeerExtension::get_packet(const uint8_t **r_buffer, int &r_buff
|
|||||||
}
|
}
|
||||||
|
|
||||||
Error MultiplayerPeerExtension::put_packet(const uint8_t *p_buffer, int p_buffer_size) {
|
Error MultiplayerPeerExtension::put_packet(const uint8_t *p_buffer, int p_buffer_size) {
|
||||||
|
ERR_FAIL_COND_V(p_buffer_size < 0, ERR_INVALID_PARAMETER);
|
||||||
Error err;
|
Error err;
|
||||||
if (GDVIRTUAL_CALL(_put_packet, p_buffer, p_buffer_size, err)) {
|
if (GDVIRTUAL_CALL(_put_packet, p_buffer, p_buffer_size, err)) {
|
||||||
return err;
|
return err;
|
||||||
|
|||||||
@ -158,6 +158,7 @@ Node *SceneState::instantiate(GenEditState p_edit_state) const {
|
|||||||
const NodeData *nd = &nodes[0];
|
const NodeData *nd = &nodes[0];
|
||||||
|
|
||||||
Node **ret_nodes = (Node **)alloca(sizeof(Node *) * nc);
|
Node **ret_nodes = (Node **)alloca(sizeof(Node *) * nc);
|
||||||
|
ret_nodes[0] = nullptr; // Sidesteps "maybe uninitialized" false-positives on GCC.
|
||||||
|
|
||||||
bool gen_node_path_cache = p_edit_state != GEN_EDIT_STATE_DISABLED && node_path_cache.is_empty();
|
bool gen_node_path_cache = p_edit_state != GEN_EDIT_STATE_DISABLED && node_path_cache.is_empty();
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,8 @@ short_name = "godot"
|
|||||||
name = "Godot Engine"
|
name = "Godot Engine"
|
||||||
major = 4
|
major = 4
|
||||||
minor = 5
|
minor = 5
|
||||||
patch = 1
|
patch = 2
|
||||||
status = "stable"
|
status = "rc"
|
||||||
module_config = ""
|
module_config = ""
|
||||||
website = "https://godotengine.org"
|
website = "https://godotengine.org"
|
||||||
docs = "4.5"
|
docs = "4.5"
|
||||||
|
|||||||
Reference in New Issue
Block a user