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;
|
||||
case READING_PIXELS: {
|
||||
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++) {
|
||||
char pixelstr[6] = { 0, 0, 0, 0, 0, 0 };
|
||||
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);
|
||||
}
|
||||
#ifdef __MINGW32__
|
||||
GODOT_GCC_WARNING_POP
|
||||
#endif
|
||||
|
||||
if (y == (size_height - 1)) {
|
||||
status = DONE;
|
||||
|
||||
@ -30,7 +30,9 @@
|
||||
|
||||
#include "geometry_2d.h"
|
||||
|
||||
GODOT_GCC_WARNING_PUSH_AND_IGNORE("-Walloc-zero")
|
||||
#include "thirdparty/clipper2/include/clipper2/clipper.h"
|
||||
GODOT_GCC_WARNING_POP
|
||||
#include "thirdparty/misc/polypartition.h"
|
||||
#define STB_RECT_PACK_IMPLEMENTATION
|
||||
#include "thirdparty/misc/stb_rect_pack.h"
|
||||
|
||||
@ -5855,6 +5855,15 @@ String String::unquote() const {
|
||||
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 {
|
||||
const String *s = this;
|
||||
if (s->is_empty()) {
|
||||
@ -5903,6 +5912,10 @@ Vector<uint8_t> String::to_utf16_buffer() const {
|
||||
return retval;
|
||||
}
|
||||
|
||||
#ifdef __MINGW32__
|
||||
GODOT_GCC_WARNING_POP
|
||||
#endif
|
||||
|
||||
Vector<uint8_t> String::to_utf32_buffer() const {
|
||||
const String *s = this;
|
||||
if (s->is_empty()) {
|
||||
|
||||
@ -32,6 +32,8 @@
|
||||
|
||||
#include "core/templates/span.h"
|
||||
|
||||
GODOT_GCC_WARNING_PUSH_AND_IGNORE("-Warray-bounds")
|
||||
|
||||
/**
|
||||
* A high performance Vector of fixed capacity.
|
||||
* 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 *end() const { return ptr() + _size; }
|
||||
};
|
||||
|
||||
GODOT_GCC_WARNING_POP
|
||||
|
||||
@ -19,11 +19,11 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>4.5.1</string>
|
||||
<string>4.5.2</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>GODO</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>4.5.1</string>
|
||||
<string>4.5.2</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>Microphone access is required to capture audio.</string>
|
||||
<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 MyAppVersion "4.5.1"
|
||||
#define MyAppVersion "4.5.2"
|
||||
#define MyAppPublisher "Godot Engine contributors"
|
||||
#define MyAppURL "https://godotengine.org/"
|
||||
#define MyAppExeName "godot.exe"
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
<Authors>Godot Engine contributors</Authors>
|
||||
|
||||
<PackageId>Godot.NET.Sdk</PackageId>
|
||||
<Version>4.5.1</Version>
|
||||
<Version>4.5.2</Version>
|
||||
<PackageVersion>$(PackageVersion_Godot_NET_Sdk)</PackageVersion>
|
||||
<RepositoryUrl>https://github.com/godotengine/godot/tree/master/modules/mono/editor/Godot.NET.Sdk</RepositoryUrl>
|
||||
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<Authors>Godot Engine contributors</Authors>
|
||||
|
||||
<PackageId>Godot.SourceGenerators</PackageId>
|
||||
<Version>4.5.1</Version>
|
||||
<Version>4.5.2</Version>
|
||||
<PackageVersion>$(PackageVersion_Godot_SourceGenerators)</PackageVersion>
|
||||
<RepositoryUrl>https://github.com/godotengine/godot/tree/master/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators</RepositoryUrl>
|
||||
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
<Authors>Godot Engine contributors</Authors>
|
||||
|
||||
<PackageId>GodotSharp</PackageId>
|
||||
<Version>4.5.1</Version>
|
||||
<Version>4.5.2</Version>
|
||||
<PackageVersion>$(PackageVersion_GodotSharp)</PackageVersion>
|
||||
<RepositoryUrl>https://github.com/godotengine/godot/tree/master/modules/mono/glue/GodotSharp/GodotSharp</RepositoryUrl>
|
||||
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
<Authors>Godot Engine contributors</Authors>
|
||||
|
||||
<PackageId>GodotSharpEditor</PackageId>
|
||||
<Version>4.5.1</Version>
|
||||
<Version>4.5.2</Version>
|
||||
<PackageVersion>$(PackageVersion_GodotSharp)</PackageVersion>
|
||||
<RepositoryUrl>https://github.com/godotengine/godot/tree/master/modules/mono/glue/GodotSharp/GodotSharpEditor</RepositoryUrl>
|
||||
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
|
||||
|
||||
@ -15,7 +15,7 @@ ext.versions = [
|
||||
// Also update 'platform/android/detect.py#get_ndk_version()' when this is updated.
|
||||
ndkVersion : '28.1.13356709',
|
||||
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 "org.bouncycastle:bcprov-jdk15to18:1.78"
|
||||
|
||||
// Android XR dependencies
|
||||
androidImplementation "org.godotengine:godot-openxr-vendors-androidxr:$versions.openxrVendorsVersion"
|
||||
// Meta dependencies
|
||||
horizonosImplementation "org.godotengine:godot-openxr-vendors-meta:$versions.openxrVendorsVersion"
|
||||
// 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.
|
||||
*
|
||||
* 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:process=":GodotXRGame"
|
||||
android:launchMode="singleTask"
|
||||
android:taskAffinity=":xr"
|
||||
android:icon="@mipmap/ic_play_window"
|
||||
android:label="@string/godot_game_activity_name"
|
||||
android:exported="false"
|
||||
|
||||
@ -68,11 +68,7 @@ import org.godotengine.godot.error.Error
|
||||
import org.godotengine.godot.utils.DialogUtils
|
||||
import org.godotengine.godot.utils.PermissionsUtil
|
||||
import org.godotengine.godot.utils.ProcessPhoenix
|
||||
import org.godotengine.godot.utils.isNativeXRDevice
|
||||
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 org.godotengine.openxr.vendors.utils.*
|
||||
import kotlin.math.min
|
||||
|
||||
/**
|
||||
@ -712,12 +708,8 @@ abstract class BaseGodotEditor : GodotActivity(), GameMenuFragment.GameMenuListe
|
||||
return isNativeXRDevice(applicationContext)
|
||||
}
|
||||
|
||||
if (featureTag == "horizonos") {
|
||||
return BuildConfig.FLAVOR == "horizonos"
|
||||
}
|
||||
|
||||
if (featureTag == "picoos") {
|
||||
return BuildConfig.FLAVOR == "picoos"
|
||||
if (featureTag == BuildConfig.FLAVOR) {
|
||||
return true
|
||||
}
|
||||
|
||||
return super.supportsFeature(featureTag)
|
||||
|
||||
@ -38,8 +38,7 @@ import org.godotengine.godot.GodotLib
|
||||
import org.godotengine.godot.editor.utils.GameMenuUtils
|
||||
import org.godotengine.godot.utils.PermissionsUtil
|
||||
import org.godotengine.godot.utils.ProcessPhoenix
|
||||
import org.godotengine.godot.xr.HYBRID_APP_FEATURE
|
||||
import org.godotengine.godot.xr.isHybridAppEnabled
|
||||
import org.godotengine.openxr.vendors.utils.*
|
||||
|
||||
/**
|
||||
* 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.editor.utils.GameMenuUtils
|
||||
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.isHybridAppEnabled
|
||||
import org.godotengine.openxr.vendors.utils.*
|
||||
|
||||
/**
|
||||
* 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) {
|
||||
ERR_FAIL_COND_V(p_buffer_size < 0, ERR_INVALID_PARAMETER);
|
||||
Error err;
|
||||
if (GDVIRTUAL_CALL(_put_packet, p_buffer, p_buffer_size, err)) {
|
||||
return err;
|
||||
|
||||
@ -158,6 +158,7 @@ Node *SceneState::instantiate(GenEditState p_edit_state) const {
|
||||
const NodeData *nd = &nodes[0];
|
||||
|
||||
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();
|
||||
|
||||
|
||||
@ -2,8 +2,8 @@ short_name = "godot"
|
||||
name = "Godot Engine"
|
||||
major = 4
|
||||
minor = 5
|
||||
patch = 1
|
||||
status = "stable"
|
||||
patch = 2
|
||||
status = "rc"
|
||||
module_config = ""
|
||||
website = "https://godotengine.org"
|
||||
docs = "4.5"
|
||||
|
||||
Reference in New Issue
Block a user