Commit Graph

112 Commits

Author SHA1 Message Date
GoaLitiuM bf5e5d1254 Refactor native interop internal type lookup 2024-06-01 23:20:33 +03:00
GoaLitiuM adbe43c2c2 Move generated marshallers into separate namespace
Avoid polluting the `FlaxEngine` namespace with interop related
marshallers, move those to nested namespace called `Interop` where most
of the common marshallers are placed already.
2024-06-01 23:20:32 +03:00
GoaLitiuM b6879e7688 Fix concurrent access to cached marshalled type sizes
Also optimize hot path for type size when we have generic type
2024-03-03 01:32:52 +02:00
mafiesto4 859c420d76 Update year in copyright note 2024-02-26 19:00:48 +01:00
mafiesto4 8898c20ad1 Fix crash when using generic interface in C#
#1983
2024-02-25 23:40:14 +01:00
mafiesto4 2df3d0f747 Fix crash when loading level with abstract script class
#1990
2024-02-25 14:54:57 +01:00
mafiesto4 f0f8da3c09 Various fixes 2024-02-16 12:29:59 +01:00
mafiesto4 7db0ae59bb Fix managed method delegate creation to be thread-safe 2023-12-07 14:35:13 +01:00
mafiesto4 cebd28c3a7 Revert fd938e8284 2023-11-29 18:46:18 +01:00
mafiesto4 d3a77c7a55 Fix regressions 2023-11-28 17:38:06 +01:00
mafiesto4 fd938e8284 Fix incorrect pointer marshalling from Variant to managed runtime
#1992
2023-11-28 11:22:14 +01:00
mafiesto4 39dc5939e3 Fix crash when boxing native non-POD structure into managed format
#1992
2023-11-27 17:08:07 +01:00
mafiesto4 0f14672e3b Codestyle formatting and fixes for #1888 2023-11-13 09:45:33 +01:00
SS 77b6a4a68b Fixed issue in NativeInterop
Readded check in current app domain to ExtendedSerializationBinder
2023-11-07 16:03:03 -07:00
SS d6e93a7fab Fixed issue involving stale scripting assemblies in FlaxEngine.Json dynamic type resolution
Added new ExtendedSerializationBinder
Added callback to clear serializer cache on scripting assembly reload
Added low-cost mechanism to invalidate the SerializerCache after domain reload
2023-11-06 18:49:30 -07:00
mafiesto4 bfaa292b04 Fix invoking managed method on value types (eg. Transform) to properly handle instance value
#1801
2023-10-26 11:37:37 +02:00
mafiesto4 af468ee6ae Fix scripting interop in AOT mode to use reflection-based field access 2023-10-11 15:18:28 +02:00
mafiesto4 ac542bf920 Fix FieldHelper.GetFieldOffset crash for classes with const fields (compile-time)
Inline call in `CreateScriptingObject` for perf
2023-10-10 20:52:12 +02:00
mafiesto4 18aafb6fc7 Fix regression from #1312 when passing structure from C++ to C# thunk as already boxed value 2023-10-05 11:35:52 +02:00
mafiesto4 f77198c7ca Fixes for iOS #1312 2023-09-29 00:00:21 +02:00
mafiesto4 82b2f46b48 Post-merge tweaks for #1312 2023-09-28 19:21:06 +02:00
mafiesto4 279528a30d Merge branch 'marshalling_scriptingobject_changes' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-marshalling_scriptingobject_changes
# Conflicts:
#	Source/Engine/Engine/NativeInterop.Unmanaged.cs
#	Source/Engine/Scripting/Runtime/DotNet.cpp
2023-09-28 18:41:20 +02:00
mafiesto4 9731d76a94 Merge branch 'unloaded_assembly_fix' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-unloaded_assembly_fix 2023-09-22 12:54:22 +02:00
mafiesto4 62c2008cbc Fix crash in C# JobSystem.Dispatch due to GC collecting Delegate object 2023-09-22 12:50:50 +02:00
mafiesto4 31b3f56ddb Fix visibility of some internal NativeInterop methods for game bindings 2023-09-22 12:37:13 +02:00
GoaLitiuM 7d69abadb7 Fix script reload crash with .NET libraries 2023-09-21 19:44:01 +03:00
GoaLitiuM 2d2bfd9cd1 Include EditorModules in Assembly lookup paths 2023-09-16 14:15:09 +03:00
mafiesto4 c32a139dbd Fix crash when unboxing managed structure with refs into Variant 2023-08-29 11:57:18 +02:00
GoaLitiuM 42ab218a8e Merge branch 'master' into marshalling_scriptingobject_changes
# Conflicts:
#	Source/Engine/Engine/NativeInterop.Invoker.cs
#	Source/Engine/Engine/NativeInterop.Unmanaged.cs
2023-08-20 20:24:41 +03:00
mafiesto4 342ec4c3c2 Merge branch 'arraytype_cache' of https://github.com/GoaLitiuM/FlaxEngine into GoaLitiuM-arraytype_cache 2023-08-14 15:36:27 +02:00
GoaLitiuM 53b1d0dd85 Optimize ScriptingObject managed initialization 2023-08-13 23:56:27 +03:00
GoaLitiuM d4d404ac0b Optimize native interop marshallers runtime type checking 2023-08-13 22:28:56 +03:00
GoaLitiuM 1254af8bbb Optimize UnboxValue performance, safety and memory usage
- Avoids unnecessary boxing of the converted values by storing them in
unmanaged memory.
- Wrap ToNative-method in a delegate and cache it
- Fixes returning address to unpinned memory by pinning POD-types for
a short period of time.
2023-08-13 21:53:42 +03:00
GoaLitiuM 44b70d87e5 Cache MakeArrayType results in native interop 2023-08-13 21:42:40 +03:00
mafiesto4 11bb6d4364 Fix crash when using custom Anim Graph node (.NET 7 regression) 2023-07-24 14:23:28 +02:00
mafiesto4 c79952a4d6 Implement missing dotnet7 interop for field and stabilize interop 2023-07-04 17:57:59 +02:00
mafiesto4 9a1fd12a85 Fix sizeof struct within generic type instance
#1219
2023-07-03 11:42:15 +02:00
GoaLitiuM 28335478bd Fix managed library location resolver 2023-07-02 21:56:41 +03:00
mafiesto4 3119c50789 Fix nullable warnings 2023-06-28 20:09:01 +02:00
GoaLitiuM 87e96a9017 Fix native library lookup after hot reload 2023-06-20 16:29:04 +03:00
mafiesto4 6b8d8b7913 Various fixes and improvements to auto-generated bindings usability 2023-06-12 14:35:11 +02:00
mafiesto4 652f8ccb8d Fix crash when reading field value from C# in AOT on iOS 2023-06-11 15:05:14 +02:00
mafiesto4 ad1c573678 Fix false-positive error when interop structure has a additional memory size (alignment) 2023-05-25 00:12:54 +02:00
mafiesto4 3e792e6cd7 Add NativeInteropException for native interop crashes 2023-05-19 13:52:30 +02:00
GoaLitiuM cbe07b842f Fix resolving managed scripts references in Editor 2023-05-11 22:11:46 +03:00
mafiesto4 8b2d3db3f1 Fix passing boxed reference values to managed thunk and properly unbox non-POD structures 2023-04-18 15:54:54 +02:00
mafiesto4 9a84f9e4ac Improve native library path on dotnet when using plugins 2023-04-17 14:06:47 +02:00
mafiesto4 609217a3bb Fix using Nullable<T> in C# properties
Fixes #935
2023-04-12 15:47:03 +02:00
GoaLitiuM 7df5a7c646 Fix managed method invoker delegate caching 2023-04-09 18:25:14 +03:00
mafiesto4 12f4dc74d2 Optimize default C# stdlib references to prevent using jit-ed features in a game assembly 2023-04-01 23:34:05 +02:00