Compare commits

...

8 Commits

Author SHA1 Message Date
Arctis Fireblight
abc59bb63e Merge pull request #1107 from Arctis-Fireblight/add-buildscript
Created `.gitlab-ci.yml` file for automating release builds
2025-11-06 19:58:44 -06:00
Arctis Fireblight
f81478a98d Created .gitlab-ci.yml file for automating release builds 2025-11-06 19:48:09 -06:00
Arctis Fireblight
54fbf8ed8b Merge pull request #1102 from Arctis-Fireblight/4.4
Bump version - 4.4.0-rc.1
2025-11-06 07:43:56 -06:00
Arctis Fireblight
65829d638a Merge pull request #1106 from Arctis-Fireblight/Fix-Gcc-warnings-4.4
Fix GCC warnings - 4.4
2025-11-05 22:20:59 -06:00
Thaddeus Crews
bc320db5e3 Core: Sidestep GCC false-positives
(cherry picked from commit acdb8667b56a43db6eee9a96ad61147bb80ea785)

Adds some more fixes for 4.5.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-11-05 22:14:39 -06:00
Arctis Fireblight
d15a36616a Bump version - 4.4.0-rc.1 2025-11-02 16:43:43 -06:00
Arctis Fireblight
f49ba20319 Merge pull request #1099 from Arctis-Fireblight/4.4
Cherrypick 4.4: Add Missing `NodePath.Slice()` method to the C# API (#1097)
2025-10-16 08:30:50 -05:00
087b7ee14a Add Missing NodePath.Slice() method to the C# API (#1097)
* Add missing `NodePath.Slice()` method to the C# API

* Fix syntax error due to missing parenthesis.

* Replace space indentation with tab

* Fix incorrect type name
2025-10-15 22:35:32 -05:00
8 changed files with 1344 additions and 2 deletions

1294
.gitlab-ci.yml Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -2393,6 +2393,10 @@ 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;
#if defined(__GNUC__) && !defined(__clang__)
#pragma GCC diagnostic push
#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++) {
@@ -2407,6 +2411,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);
} }
#if defined(__GNUC__) && !defined(__clang__)
#pragma GCC diagnostic pop
#endif
if (y == (size_height - 1)) { if (y == (size_height - 1)) {
status = DONE; status = DONE;

View File

@@ -32,7 +32,14 @@
#include "geometry_2d.h" #include "geometry_2d.h"
#if defined(__GNUC__) && !defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Walloc-zero"
#endif
#include "thirdparty/clipper2/include/clipper2/clipper.h" #include "thirdparty/clipper2/include/clipper2/clipper.h"
#if defined(__GNUC__) && !defined(__clang__)
#pragma GCC diagnostic pop
#endif
#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"

View File

@@ -533,6 +533,9 @@ namespace Godot.NativeInterop
public static partial int godotsharp_node_path_get_subname_count(in godot_node_path p_self); public static partial int godotsharp_node_path_get_subname_count(in godot_node_path p_self);
public static partial void godotsharp_node_path_slice(scoped in godot_node_path p_self, int p_begin, int p_end,
out godot_node_path r_result);
public static partial godot_bool godotsharp_node_path_is_absolute(in godot_node_path p_self); public static partial godot_bool godotsharp_node_path_is_absolute(in godot_node_path p_self);
public static partial godot_bool godotsharp_node_path_equals(in godot_node_path p_self, in godot_node_path p_other); public static partial godot_bool godotsharp_node_path_equals(in godot_node_path p_self, in godot_node_path p_other);

View File

@@ -274,6 +274,31 @@ namespace Godot
return NativeFuncs.godotsharp_node_path_get_subname_count(self); return NativeFuncs.godotsharp_node_path_get_subname_count(self);
} }
/// <summary>
/// Returns the slice of the <em>NodePath</em>, from <c>begin</c> (inclusive) to <c>end</c> (exclusive), as a
/// new <em>NodePath</em>.<br/>
/// The absolute value of <c>begin</c> and <c>end</c> will be clamped to the sum of
/// <see cref="NodePath.GetNameCount">GetNameCount</see> and
/// <see cref="NodePath.GetSubNameCount">GetSubNameCount</see>, so the default value for <c>end</c> makes it
/// slice to the end of the <em>NodePath</em> by default (i.e. <c>path.Slice(1)</c> is a shorthand for
/// <c>path.Slice(1, path.GetNameCount() + path.GetSubNameCount())</c>).<br/>
/// If either <c>begin</c> or <c>end</c> are negative, they will be relative to the end of the <em>NodePath</em>
/// (i.e. <c>path.Slice(0, -2)</c> is shorthand for
/// <c>path.Slice(0, path.GetNameCount() + path.GetSubNameCount() - 2)</c>).
/// </summary>
/// <param name="begin">The index of the name or subname at which to start the slice.</param>
/// <param name="end">The index (exclusive) of the name or subname at which to end the slice.</param>
/// <returns>A slice of the <em>NodePath</em> bounded by <c>begin</c> and <c>end</c>.</returns>
public NodePath Slice(int begin, int end = Int32.MaxValue)
{
var self = (godot_node_path)NativeValue;
NativeFuncs.godotsharp_node_path_slice(self, begin, end, out godot_node_path slicedNodePath);
using (slicedNodePath)
return new NodePath(slicedNodePath);
}
/// <summary> /// <summary>
/// Returns <see langword="true"/> if the node path is absolute (as opposed to relative), /// Returns <see langword="true"/> if the node path is absolute (as opposed to relative),
/// which means that it starts with a slash character (<c>/</c>). Absolute node paths can /// which means that it starts with a slash character (<c>/</c>). Absolute node paths can

View File

@@ -1331,6 +1331,10 @@ int32_t godotsharp_node_path_get_subname_count(const NodePath *p_self) {
return p_self->get_subname_count(); return p_self->get_subname_count();
} }
void godotsharp_node_path_slice(const NodePath *p_self, int32_t p_begin, int32_t p_end, NodePath *r_result) {
memnew_placement(r_result, NodePath(p_self->slice(p_begin, p_end)));
}
bool godotsharp_node_path_is_absolute(const NodePath *p_self) { bool godotsharp_node_path_is_absolute(const NodePath *p_self) {
return p_self->is_absolute(); return p_self->is_absolute();
} }
@@ -1712,6 +1716,7 @@ static const void *unmanaged_callbacks[]{
(void *)godotsharp_node_path_get_name_count, (void *)godotsharp_node_path_get_name_count,
(void *)godotsharp_node_path_get_subname, (void *)godotsharp_node_path_get_subname,
(void *)godotsharp_node_path_get_subname_count, (void *)godotsharp_node_path_get_subname_count,
(void *)godotsharp_node_path_slice,
(void *)godotsharp_node_path_is_absolute, (void *)godotsharp_node_path_is_absolute,
(void *)godotsharp_node_path_equals, (void *)godotsharp_node_path_equals,
(void *)godotsharp_node_path_hash, (void *)godotsharp_node_path_hash,

View File

@@ -159,6 +159,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();

View File

@@ -3,8 +3,8 @@ name = "Redot Engine"
major = 4 major = 4
minor = 4 minor = 4
patch = 0 patch = 0
status = "beta" status = "rc"
status_version = 0 status_version = 1
module_config = "" module_config = ""
website = "https://redotengine.org" website = "https://redotengine.org"
docs = "latest" docs = "latest"