| author | Stephen Paul Weber
<singpolyma@singpolyma.net> 2025-03-18 18:47:20 UTC |
| committer | Stephen Paul Weber
<singpolyma@singpolyma.net> 2025-03-18 18:47:20 UTC |
| parent | 4753053aa0609d332717f693fd5800e01f3ce8fd |
| HaxeCBridge.hx | +11 | -1 |
diff --git a/HaxeCBridge.hx b/HaxeCBridge.hx index b34d65d..b61bcda 100644 --- a/HaxeCBridge.hx +++ b/HaxeCBridge.hx @@ -286,7 +286,7 @@ class HaxeCBridge { } case FVar(t, e): switch (t) { - case TPath(path) if (path.name == "Array"): + case TPath(path) if (path.name == "Array" || path.name == "ReadOnlyArray"): final ptrT = TPath({name: "RawPointer", pack: ["cpp"], params: [TPType(convertSecondaryType(t).args[0])]}); fields.insert(insertTo, { name: field.name + "__fromC", @@ -1866,6 +1866,11 @@ abstract HaxeShortArray<T>(cpp.RawPointer<cpp.Int16>) from cpp.RawPointer<cpp.In } abstract HaxeStringArray<T>(cpp.RawPointer<cpp.ConstCharStar>) from cpp.RawPointer<cpp.ConstCharStar> to cpp.RawPointer<cpp.ConstCharStar> { + @:from + public static inline function fromReadOnlyArrayString(x: haxe.ds.ReadOnlyArray<String>): HaxeStringArray<cpp.ConstCharStar> { + return fromArrayString(cast x); + } + @:from public static inline function fromArrayString(x: Array<String>): HaxeStringArray<cpp.ConstCharStar> { final arr: Array<cpp.SizeT> = cpp.NativeArray.create(x.length); @@ -1878,6 +1883,11 @@ abstract HaxeStringArray<T>(cpp.RawPointer<cpp.ConstCharStar>) from cpp.RawPoint } abstract HaxeArray<T>(cpp.RawPointer<cpp.RawPointer<cpp.Void>>) from cpp.RawPointer<cpp.RawPointer<cpp.Void>> to cpp.RawPointer<cpp.RawPointer<cpp.Void>> { + @:from + public static inline function fromReadOnlyArrayT<T>(x: haxe.ds.ReadOnlyArray<T>): HaxeArray<HaxeObject<T>> { + return fromArrayT(cast x); + } + @:from public static inline function fromArrayT<T>(x: Array<T>): HaxeArray<HaxeObject<T>> { for (el in x) {