Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
5d705c5
Fix implementation
STREGA Dec 10, 2025
d7f99a4
Continue new GameMath implementation
STREGA Dec 11, 2025
f9f9ee1
Refactor
STREGA Dec 11, 2025
c1022cc
Make RawTexture a mutable collection
STREGA Dec 11, 2025
05b1ba9
Implement swapAt for improved sorting performance
STREGA Dec 11, 2025
c34e345
Make RawTexture a mutable collection
STREGA Dec 11, 2025
b7e0002
Refactor
STREGA Dec 11, 2025
77b8358
Implement swapAt for better sorting performance
STREGA Dec 11, 2025
98c7f01
Merge branch 'main' of https://github.com/STREGAsGate/GateEngine
STREGA Dec 11, 2025
1a3a247
Refactor to be consistent
STREGA Dec 11, 2025
57016c8
Continue new GameMath implementation
STREGA Dec 11, 2025
43cf146
Continue expanding functionality
STREGA Dec 12, 2025
90ef083
Remove unused awaits
STREGA Dec 12, 2025
eec94de
Continue enhancing functionality
STREGA Dec 12, 2025
1b1716d
Continue new GameMath implementation
STREGA Dec 14, 2025
4921f6f
Add Unity SkyBox
STREGA Dec 14, 2025
5947c01
Refactor
STREGA Dec 14, 2025
c1d088a
Allow adding manually created textures
STREGA Dec 14, 2025
989cd64
Continue new GameMath implementation
STREGA Dec 14, 2025
8f18a5b
Make function global
STREGA Dec 14, 2025
1115e4a
Chip away at Swift 6
STREGA Dec 15, 2025
0185f28
Show info in release builds
STREGA Dec 17, 2025
a8e358d
Continue new GameMath implementation
STREGA Dec 17, 2025
654c56b
Improve performance
STREGA Dec 17, 2025
72898d2
Add light map baker
STREGA Dec 17, 2025
fa1b7da
Fix typo
STREGA Dec 20, 2025
f8d19e6
Fix collision bug
STREGA Dec 20, 2025
5d6c818
Temporarily allow checking isEmpty
STREGA Dec 21, 2025
fdb41fc
Allow providing shaders
STREGA Dec 21, 2025
f1e4dbd
Reduce ambiguity
STREGA Dec 21, 2025
22a9713
Allow specifying blendMode
STREGA Dec 22, 2025
f25d443
Add PathFinding3n
STREGA Dec 22, 2025
b12eed5
Continue new GameMath implementation
STREGA Dec 23, 2025
44e2bd5
Fix empty lines bug
STREGA Dec 24, 2025
470c0fa
Continue PathFinding3n implementation
STREGA Dec 24, 2025
0078cb2
Fix UI corners bug
STREGA Dec 25, 2025
b269b16
Fix UI clipToBounds bug
STREGA Dec 25, 2025
887617a
Fix subviews bug
STREGA Dec 26, 2025
390eea8
Add addSubview variants
STREGA Dec 26, 2025
23c17c6
Use Deque
STREGA Dec 26, 2025
cf8ec94
Add lines and points
STREGA Dec 26, 2025
e60cff6
Fix rig driven collider update bug
STREGA Dec 26, 2025
e0781e4
Fix multiple skins per gltf bug
STREGA Dec 26, 2025
d6cef73
Refactor to use existing functions
STREGA Dec 27, 2025
56f415f
Refactor
STREGA Dec 27, 2025
0b8728c
Add SkinCollider to triangle checks
STREGA Dec 27, 2025
e19cee4
Create Ray3n+Compatibility.swift
STREGA Dec 27, 2025
918eae5
Update Gravity
STREGA Dec 27, 2025
533c4c9
Chip away at Swift 6
STREGA Dec 29, 2025
ba50444
Chip away at Swift 6
STREGA Dec 29, 2025
4dd83b9
Expand Gravity errors
STREGA Dec 29, 2025
04c7ecc
Merge branch 'main' of https://github.com/STREGAsGate/GateEngine
STREGA Dec 29, 2025
ffccf93
Chip away at Swift 6
STREGA Dec 30, 2025
948a562
Update utilities
STREGA Dec 31, 2025
920343f
Fix makeInstancesReal bug
STREGA Dec 31, 2025
27e3a67
Create Rotation3n+Compatibility.swift
STREGA Jan 2, 2026
2111548
Make bake cancellable
STREGA Jan 2, 2026
f2c34bf
Make weak
STREGA Jan 3, 2026
04ccb51
Make context optional
STREGA Jan 5, 2026
3ff86d0
Add async variant
STREGA Jan 5, 2026
12f3a76
Refactor into multiple variants
STREGA Jan 5, 2026
e98087e
Disfavor to resolve SIMD ambiguity
STREGA Jan 5, 2026
108230f
Have user handle superview removal
STREGA Jan 5, 2026
b1ca580
Use VSync deltaTime
STREGA Jan 6, 2026
013abd7
Update Canvas.swift
STREGA Jan 6, 2026
5b02c1d
Add float variants
STREGA Jan 6, 2026
02dc1ce
Update Text.swift
STREGA Jan 6, 2026
bf1b99e
Continue new GameMath implementation
STREGA Jan 6, 2026
935d41a
Fix render bug
STREGA Jan 10, 2026
86308d8
Add vertexColorTint shader
STREGA Jan 10, 2026
55c1f96
Add Optional<> variants
STREGA Jan 10, 2026
82cce1e
Use typed throws
STREGA Jan 10, 2026
a74c36e
Make clipToBounds tru by default
STREGA Jan 10, 2026
27e0266
Continue new GameMath implementation
STREGA Jan 13, 2026
bc15805
Create BinaryInteger+isEven.swift
STREGA Jan 13, 2026
812fa8d
Allow resetting colors
STREGA Jan 13, 2026
b1df9a0
Allow loading as bounding box wireframe
STREGA Jan 13, 2026
30c49c9
Continue new GameMath implementation
STREGA Jan 13, 2026
0c19bc2
Remove redundant init
STREGA Jan 20, 2026
ca6ff5b
Use window reachability
STREGA Jan 20, 2026
b307c17
Add subscript for InternalID
STREGA Jan 20, 2026
74bc6f0
Refactor collision
STREGA Jan 20, 2026
b40f2ad
Add more convenience accessors
STREGA Jan 20, 2026
c0db2a5
Fix bug with distance based animation culling
STREGA Jan 20, 2026
51d0ab3
Allow removing uniforms
STREGA Jan 20, 2026
810df50
Add convenience apis
STREGA Jan 20, 2026
5af04af
Update Package.swift
STREGA Mar 2, 2026
9f47aa7
Continue new GameMath implementation
STREGA Mar 2, 2026
137b9d5
Fix collision bug
STREGA Mar 2, 2026
e990db5
Add subscript
STREGA Mar 2, 2026
1e5cd07
Improve documentation
STREGA Mar 2, 2026
9f7c048
Add block based access
STREGA Mar 2, 2026
60f942d
Improve Gravity errors
STREGA Mar 2, 2026
8ac4b58
Add nodes accessor
STREGA Mar 2, 2026
1b0f652
Merge upstream STREGAsGate/main (94 commits) preserving Windows/Swift…
0xLeif Jul 7, 2026
595bb56
Fix: import specific swift-collections modules for MemberImportVisibi…
0xLeif Jul 7, 2026
4b63bf2
Fix: remove duplicate swift-collections imports
0xLeif Jul 7, 2026
6bcc8d7
Fix: reconcile upstream sync build failures across all platforms
0xLeif Jul 7, 2026
11c8395
Fix: reconcile test suite with upstream sync so swift test passes cro…
0xLeif Jul 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dependencies/Gravity/src/compiler/debug_macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <assert.h>
#include <limits.h>
#include <float.h>
#include <math.h>
#include <assert.h>
#include "../shared/gravity_memory.h"
#include "../shared/gravity_config.h"

Expand Down
1 change: 0 additions & 1 deletion Dependencies/Gravity/src/compiler/gravity_ast.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
#include "../utils/gravity_utils.h"
#include "../compiler/gravity_visitor.h"
#include "../compiler/gravity_symboltable.h"
#include <assert.h>

#define SETBASE(node,tagv,_tok) node->base.tag = tagv; node->base.token = _tok
#define SETDECL(node,_decl) node->base.decl = _decl
Expand Down
1 change: 0 additions & 1 deletion Dependencies/Gravity/src/compiler/gravity_codegen.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
#include "../utils/gravity_utils.h"
#include "../shared/gravity_array.h"
#include "../shared/gravity_hash.h"
#include <assert.h>

typedef marray_t(gnode_class_decl_t *) gnode_class_r;
struct codegen_t {
Expand Down
6 changes: 4 additions & 2 deletions Dependencies/Gravity/src/compiler/gravity_ircode.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
#include "../shared/gravity_value.h"
#include "../utils/gravity_debug.h"
#include <inttypes.h>
#include <assert.h>

typedef marray_t(inst_t *) code_r;
typedef marray_t(bool *) context_r;
Expand Down Expand Up @@ -44,7 +43,10 @@ ircode_t *ircode_create (uint16_t nlocals) {
code->error = false;

code->list = mem_alloc(NULL, sizeof(code_r));
if (!code->list) return NULL;
if (!code->list) {
mem_free(code);
return NULL;
}
marray_init(*code->list);
marray_init(code->label_true);
marray_init(code->label_false);
Expand Down
1 change: 0 additions & 1 deletion Dependencies/Gravity/src/compiler/gravity_lexer.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
#include "../compiler/gravity_lexer.h"
#include "../compiler/gravity_token.h"
#include "../utils/gravity_utils.h"
#include <assert.h>

struct gravity_lexer_t {
const char *buffer; // buffer
Expand Down
1 change: 0 additions & 1 deletion Dependencies/Gravity/src/compiler/gravity_optimizer.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
#include "../compiler/gravity_ircode.h"
#include "../utils/gravity_utils.h"
#include "../shared/gravity_value.h"
#include <assert.h>

#define IS_MOVE(inst) ((inst) && (inst->op == MOVE))
#define IS_RET(inst) ((inst) && (inst->op == RET))
Expand Down
6 changes: 4 additions & 2 deletions Dependencies/Gravity/src/compiler/gravity_parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
#include "../shared/gravity_hash.h"
#include "../runtime/gravity_core.h"
#include "../compiler/gravity_ast.h"
#include <assert.h>

typedef marray_t(gravity_lexer_t*) lexer_r;

Expand Down Expand Up @@ -438,7 +437,10 @@ static gnode_t *parse_file_expression (gravity_parser_t *parser) {
while (gravity_lexer_peek(lexer) == TOK_OP_DOT) {
gravity_lexer_next(lexer); // consume TOK_OP_DOT
const char *identifier = parse_identifier(parser);
if (!identifier) return NULL;
if (!identifier) {
mem_free(list);
return NULL;
}
cstring_array_push(list, identifier);
}

Expand Down
1 change: 0 additions & 1 deletion Dependencies/Gravity/src/compiler/gravity_semacheck2.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
#include "../compiler/gravity_compiler.h"
#include "../compiler/gravity_visitor.h"
#include "../runtime/gravity_core.h"
#include <assert.h>

struct semacheck_t {
gnode_r *declarations; // declarations stack
Expand Down
1 change: 0 additions & 1 deletion Dependencies/Gravity/src/compiler/gravity_symboltable.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
#include "../shared/gravity_macros.h"
#include "../shared/gravity_array.h"
#include "../shared/gravity_hash.h"
#include <assert.h>

// symbol table implementation using a stack of hash tables
typedef marray_t(gravity_hash_t*) ghash_r;
Expand Down
1 change: 0 additions & 1 deletion Dependencies/Gravity/src/compiler/gravity_token.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

#include "../compiler/gravity_token.h"
#include "../utils/gravity_utils.h"
#include <assert.h>

const char *token_string (gtoken_s token, uint32_t *len) {
if (len) *len = token.bytes;
Expand Down
1 change: 0 additions & 1 deletion Dependencies/Gravity/src/compiler/gravity_visitor.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
//

#include "../compiler/gravity_visitor.h"
#include <assert.h>

// Visit a node invoking the associated callback.

Expand Down
1 change: 0 additions & 1 deletion Dependencies/Gravity/src/runtime/gravity_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
#include <math.h>
#include <time.h>
#include <stdlib.h>
#include <assert.h>
#include "gravity_core.h"
#include "../shared/gravity_hash.h"
#include "../shared/gravity_value.h"
Expand Down
1 change: 0 additions & 1 deletion Dependencies/Gravity/src/runtime/gravity_vm.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
// Copyright (c) 2014 CreoLabs. All rights reserved.
//

#include <assert.h>
#include "../shared/gravity_hash.h"
#include "../utils/gravity_json.h"
#include "../shared/gravity_array.h"
Expand Down
44 changes: 22 additions & 22 deletions Dependencies/Gravity/src/shared/gravity_delegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,29 +31,29 @@ typedef struct {

#define ERROR_DESC_NONE (error_desc_t){0,0,0,0}

typedef void (* gravity_error_callback) (gravity_vm *vm, error_type_t error_type, const char *description, error_desc_t error_desc, void *xdata);
typedef void (* gravity_log_callback) (gravity_vm *vm, const char *message, void *xdata);
typedef void (* gravity_log_clear) (gravity_vm *vm, void *xdata);
typedef void (* gravity_unittest_callback) (gravity_vm *vm, error_type_t error_type, const char *desc, const char *note, gravity_value_t value, int32_t row, int32_t col, void *xdata);
typedef const char* (* gravity_filename_callback) (uint32_t fileid, void *xdata);
typedef const char* (* gravity_loadfile_callback) (const char *file, size_t *size, uint32_t *fileid, void *xdata, bool *is_static);
typedef const char** (* gravity_optclass_callback) (void *xdata);
typedef void (* gravity_parser_callback) (void *token, void *xdata);
typedef const char* (* gravity_precode_callback) (void *xdata);
typedef void (* gravity_type_callback) (void *token, const char *type, void *xdata);
typedef void (*gravity_error_callback) (gravity_vm *vm, error_type_t error_type, const char *description, error_desc_t error_desc, void *xdata);
typedef void (*gravity_log_callback) (gravity_vm *vm, const char *message, void *xdata);
typedef void (*gravity_log_clear) (gravity_vm *vm, void *xdata);
typedef void (*gravity_unittest_callback) (gravity_vm *vm, error_type_t error_type, const char *desc, const char *note, gravity_value_t value, int32_t row, int32_t col, void *xdata);
typedef const char* (*gravity_filename_callback) (uint32_t fileid, void *xdata);
typedef const char* (*gravity_loadfile_callback) (const char *file, size_t *size, uint32_t *fileid, void *xdata, bool *is_static);
typedef const char** (*gravity_optclass_callback) (void *xdata);
typedef void (*gravity_parser_callback) (void *token, void *xdata);
typedef const char* (*gravity_precode_callback) (void *xdata);
typedef void (*gravity_type_callback) (void *token, const char *type, void *xdata);

typedef void (* gravity_bridge_blacken) (gravity_vm *vm, void *xdata);
typedef void* (* gravity_bridge_clone) (gravity_vm *vm, void *xdata);
typedef bool (* gravity_bridge_equals) (gravity_vm *vm, void *obj1, void *obj2);
typedef bool (* gravity_bridge_execute) (gravity_vm *vm, void *xdata, gravity_value_t ctx, gravity_value_t args[], int16_t nargs, uint32_t vindex);
typedef void (* gravity_bridge_free) (gravity_vm *vm, gravity_object_t *obj);
typedef bool (* gravity_bridge_getundef) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, uint32_t vindex);
typedef bool (* gravity_bridge_getvalue) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, uint32_t vindex);
typedef bool (* gravity_bridge_initinstance) (gravity_vm *vm, void *xdata, gravity_value_t ctx, gravity_instance_t *instance, gravity_value_t args[], int16_t nargs);
typedef bool (* gravity_bridge_setvalue) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, gravity_value_t value);
typedef bool (* gravity_bridge_setundef) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, gravity_value_t value);
typedef uint32_t (* gravity_bridge_size) (gravity_vm *vm, gravity_object_t *obj);
typedef const char* (* gravity_bridge_string) (gravity_vm *vm, void *xdata, uint32_t *len);
typedef void (*gravity_bridge_blacken) (gravity_vm *vm, void *xdata);
typedef void* (*gravity_bridge_clone) (gravity_vm *vm, void *xdata);
typedef bool (*gravity_bridge_equals) (gravity_vm *vm, void *obj1, void *obj2);
typedef bool (*gravity_bridge_execute) (gravity_vm *vm, void *xdata, gravity_value_t ctx, gravity_value_t args[], int16_t nargs, uint32_t vindex);
typedef void (*gravity_bridge_free) (gravity_vm *vm, gravity_object_t *obj);
typedef bool (*gravity_bridge_getundef) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, uint32_t vindex);
typedef bool (*gravity_bridge_getvalue) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, uint32_t vindex);
typedef bool (*gravity_bridge_initinstance) (gravity_vm *vm, void *xdata, gravity_value_t ctx, gravity_instance_t *instance, gravity_value_t args[], int16_t nargs);
typedef bool (*gravity_bridge_setvalue) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, gravity_value_t value);
typedef bool (*gravity_bridge_setundef) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, gravity_value_t value);
typedef uint32_t (*gravity_bridge_size) (gravity_vm *vm, gravity_object_t *obj);
typedef const char* (*gravity_bridge_string) (gravity_vm *vm, void *xdata, uint32_t *len);

typedef struct {
// user data
Expand Down
1 change: 0 additions & 1 deletion Dependencies/Gravity/src/shared/gravity_value.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
#include "gravity_macros.h"
#include "gravity_opcodes.h"
#include "../runtime/gravity_vmmacros.h"
#include <assert.h>

// mark object visited to avoid infinite loop
#define SET_OBJECT_VISITED_FLAG(_obj, _flag) (((gravity_object_t *)_obj)->gc.visited = _flag)
Expand Down
78 changes: 50 additions & 28 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// swift-tools-version:6.1
// swift-tools-version:6.2
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription
Expand All @@ -13,7 +13,7 @@ let package = Package(
.library(name: "GateUtilities", targets: ["GateUtilities"]),
],
traits: [
.default(enabledTraits: ["SIMD"]),
.default(enabledTraits: []),

.trait(
name: "DISTRIBUTE",
Expand All @@ -34,14 +34,14 @@ let package = Package(

// Official
packageDependencies.append(contentsOf: [
.package(url: "https://github.com/apple/swift-atomics.git", .upToNextMajor(from: "1.2.0")),
.package(url: "https://github.com/apple/swift-collections.git", .upToNextMajor(from: "1.2.0")),
.package(url: "https://github.com/apple/swift-syntax.git", .upToNextMajor(from: "601.0.0")),
.package(url: "https://github.com/apple/swift-atomics.git", from: "1.3.0"),
.package(url: "https://github.com/apple/swift-collections.git", from: "1.3.0"),
.package(url: "https://github.com/apple/swift-syntax.git", from: .currentGitTag),
])

#if false // Linting / Formating
packageDependencies.append(contentsOf: [
.package(url: "https://github.com/apple/swift-format.git", .upToNextMajor(from: "601.0.0")),
.package(url: "https://github.com/apple/swift-format.git", from: .currentGitTag),
])
#endif

Expand Down Expand Up @@ -240,23 +240,23 @@ let package = Package(
})
),

.target(
name: "GameMath",
dependencies: [
"GateUtilities"
],
swiftSettings: .default(withCustomization: { settings in
#if false
// Possibly faster on old hardware, but less accurate.
// There is no reason to use this on modern hardware.
settings.append(.define("GameMathUseFastInverseSquareRoot"))
#endif
// These settings are faster only with optimization.
settings.append(.define("GameMathUseSIMD", .when(traits: ["SIMD"])))
settings.append(.define("GameMathUseLoopVectorization", .when(traits: ["SIMD"])))
})
),
.target(
name: "GameMath",
dependencies: [
"GateUtilities"
],
swiftSettings: .default(withCustomization: { settings in
#if false
// Possibly faster on old hardware, but less accurate.
// There is no reason to use this on modern hardware.
settings.append(.define("GameMathUseFastInverseSquareRoot", .when(configuration: .release, traits: ["SIMD"])))
#endif

// These settings are faster only with optimization.
settings.append(.define("GameMathUseSIMD"/*, .when(configuration: .release, traits: ["SIMD"])*/))
settings.append(.define("GameMathUseLoopVectorization", .when(configuration: .release, traits: ["SIMD"])))
})
),

.target(
name: "GateUtilities",
Expand Down Expand Up @@ -444,11 +444,14 @@ let package = Package(
settings.append(.define("DISABLE_GRAVITY_TESTS", .when(platforms: [.wasi])))
})),
.testTarget(name: "GateUtilitiesTests",
dependencies: ["GateUtilities"]),
dependencies: ["GateUtilities"],
swiftSettings: .default),
.testTarget(name: "GameMathTests",
dependencies: ["GameMath"]),
dependencies: ["GameMath"],
swiftSettings: .default),
.testTarget(name: "GameMathNewTests",
dependencies: ["GameMath"]),
dependencies: ["GameMath"],
swiftSettings: .default),
.testTarget(name: "GravityTests",
dependencies: ["Gravity", "GateEngine"],
resources: [
Expand All @@ -462,7 +465,6 @@ let package = Package(
settings.append(.define("DISABLE_GRAVITY_TESTS", .when(platforms: [.wasi])))
})),
])
#if !os(Windows)
targets.append(contentsOf: [
.testTarget(name: "GameMathSIMDTests",
dependencies: ["GameMath"],
Expand All @@ -477,7 +479,6 @@ let package = Package(
settings.append(.define("GameMathUseLoopVectorization"))
})),
])
#endif

return targets
}(),
Expand Down Expand Up @@ -734,6 +735,9 @@ extension Array where Element == SwiftSetting {
var settings: Self = []

#if compiler(>=6.2)
#if !hasFeature(ImmutableWeakCaptures)
enableFeature("ImmutableWeakCaptures")
#endif
#if !hasFeature(InferIsolatedConformances)
enableFeature("InferIsolatedConformances")
#endif
Expand Down Expand Up @@ -862,3 +866,21 @@ extension Array where Element == SwiftSetting {
extension PackageDescription.TargetDependencyCondition {
static var whenHTML5: Self? {.when(platforms: [.wasi], traits: ["HTML5"])}
}

extension Version {
static var currentGitTag: Self {
#if swift(>=6.4)
return "604.0.0"
#elseif swift(>=6.3)
return "603.0.0"
#elseif swift(>=6.2)
return "602.0.0"
#elseif swift(>=6.1)
return "601.0.0"
#elseif swift(>=6.0)
return "600.0.0"
#else
#error("Unhandled Swift Version")
#endif
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/*
* Copyright © 2025 Dustin Collins (Strega's Gate)
* All Rights Reserved.
*
* http://stregasgate.com
*/

public extension Position2n where Scalar: BinaryInteger {
var oldVector: Position2 {
return Position2(x: Float(self.x), y: Float(self.y))
}
}

public extension Position2n where Scalar: BinaryFloatingPoint {
var oldVector: Position2 {
return Position2(x: Float(self.x), y: Float(self.y))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/*
* Copyright © 2025 Dustin Collins (Strega's Gate)
* All Rights Reserved.
*
* http://stregasgate.com
*/

public extension Size2n where Scalar: BinaryInteger {
var oldVector: Size2 {
return Size2(x: Float(self.x), y: Float(self.y))
}
}

public extension Size2n where Scalar: BinaryFloatingPoint {
var oldVector: Size2 {
return Size2(x: Float(self.x), y: Float(self.y))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/*
* Copyright © 2025 Dustin Collins (Strega's Gate)
* All Rights Reserved.
*
* http://stregasgate.com
*/

public extension Vector2n where Scalar: BinaryInteger {
init(oldVector vector2: some Vector2) {
self.init(x: Scalar(vector2.x), y: Scalar(vector2.y))
}
}

public extension Vector2n where Scalar: BinaryFloatingPoint {
init(oldVector vector2: some Vector2) {
self.init(x: Scalar(vector2.x), y: Scalar(vector2.y))
}
}
Loading
Loading