ソースを参照

Bugfix: Updated script binding thunk calls to send struct parameters boxed

BearishSun 7 年 前
コミット
4cb1b2df0b

+ 1 - 1
CMakeLists.txt

@@ -25,7 +25,7 @@ include(${BSF_SOURCE_DIR}/CMake/HelperMethods.cmake)
 
 add_subdirectory(${BSF_SOURCE_DIR})
 
-set (BS_PREBUILT_DEPENDENCIES_VERSION 23)
+set (BS_PREBUILT_DEPENDENCIES_VERSION 24)
 set (BS_SRC_DEPENDENCIES_VERSION 15)
 set (BS_BUILTIN_ASSETS_VERSION 4)
 

+ 10 - 6
Source/Scripting/SBansheeEngine/Generated/BsScriptCCharacterController.generated.cpp

@@ -51,16 +51,20 @@ namespace bs
 
 	void ScriptCCharacterController::onColliderHit(const ControllerColliderCollision& p0)
 	{
-		__ControllerColliderCollisionInterop tmpp0;
-		tmpp0 = ScriptControllerColliderCollision::toInterop(p0);
-		MonoUtil::invokeThunk(onColliderHitThunk, getManagedInstance(), &tmpp0);
+		MonoObject* tmpp0;
+		__ControllerColliderCollisionInterop interopp0;
+		interopp0 = ScriptControllerColliderCollision::toInterop(p0);
+		tmpp0 = ScriptControllerColliderCollision::box(interopp0);
+		MonoUtil::invokeThunk(onColliderHitThunk, getManagedInstance(), tmpp0);
 	}
 
 	void ScriptCCharacterController::onControllerHit(const ControllerControllerCollision& p0)
 	{
-		__ControllerControllerCollisionInterop tmpp0;
-		tmpp0 = ScriptControllerControllerCollision::toInterop(p0);
-		MonoUtil::invokeThunk(onControllerHitThunk, getManagedInstance(), &tmpp0);
+		MonoObject* tmpp0;
+		__ControllerControllerCollisionInterop interopp0;
+		interopp0 = ScriptControllerControllerCollision::toInterop(p0);
+		tmpp0 = ScriptControllerControllerCollision::box(interopp0);
+		MonoUtil::invokeThunk(onControllerHitThunk, getManagedInstance(), tmpp0);
 	}
 	CharacterCollisionFlag ScriptCCharacterController::Internal_move(ScriptCCharacterController* thisPtr, Vector3* displacement)
 	{

+ 2 - 2
Source/Scripting/SBansheeEngine/Generated/BsScriptCCharacterController.generated.h

@@ -24,9 +24,9 @@ namespace bs
 		void onColliderHit(const ControllerColliderCollision& p0);
 		void onControllerHit(const ControllerControllerCollision& p0);
 
-		typedef void(BS_THUNKCALL *onColliderHitThunkDef) (MonoObject*, __ControllerColliderCollisionInterop* p0, MonoException**);
+		typedef void(BS_THUNKCALL *onColliderHitThunkDef) (MonoObject*, MonoObject* p0, MonoException**);
 		static onColliderHitThunkDef onColliderHitThunk;
-		typedef void(BS_THUNKCALL *onControllerHitThunkDef) (MonoObject*, __ControllerControllerCollisionInterop* p0, MonoException**);
+		typedef void(BS_THUNKCALL *onControllerHitThunkDef) (MonoObject*, MonoObject* p0, MonoException**);
 		static onControllerHitThunkDef onControllerHitThunk;
 
 		static CharacterCollisionFlag Internal_move(ScriptCCharacterController* thisPtr, Vector3* displacement);

+ 15 - 9
Source/Scripting/SBansheeEngine/Generated/BsScriptCCollider.generated.cpp

@@ -49,23 +49,29 @@ namespace bs
 
 	void ScriptCCollider::onCollisionBegin(const CollisionData& p0)
 	{
-		__CollisionDataInterop tmpp0;
-		tmpp0 = ScriptCollisionData::toInterop(p0);
-		MonoUtil::invokeThunk(onCollisionBeginThunk, getManagedInstance(), &tmpp0);
+		MonoObject* tmpp0;
+		__CollisionDataInterop interopp0;
+		interopp0 = ScriptCollisionData::toInterop(p0);
+		tmpp0 = ScriptCollisionData::box(interopp0);
+		MonoUtil::invokeThunk(onCollisionBeginThunk, getManagedInstance(), tmpp0);
 	}
 
 	void ScriptCCollider::onCollisionStay(const CollisionData& p0)
 	{
-		__CollisionDataInterop tmpp0;
-		tmpp0 = ScriptCollisionData::toInterop(p0);
-		MonoUtil::invokeThunk(onCollisionStayThunk, getManagedInstance(), &tmpp0);
+		MonoObject* tmpp0;
+		__CollisionDataInterop interopp0;
+		interopp0 = ScriptCollisionData::toInterop(p0);
+		tmpp0 = ScriptCollisionData::box(interopp0);
+		MonoUtil::invokeThunk(onCollisionStayThunk, getManagedInstance(), tmpp0);
 	}
 
 	void ScriptCCollider::onCollisionEnd(const CollisionData& p0)
 	{
-		__CollisionDataInterop tmpp0;
-		tmpp0 = ScriptCollisionData::toInterop(p0);
-		MonoUtil::invokeThunk(onCollisionEndThunk, getManagedInstance(), &tmpp0);
+		MonoObject* tmpp0;
+		__CollisionDataInterop interopp0;
+		interopp0 = ScriptCollisionData::toInterop(p0);
+		tmpp0 = ScriptCollisionData::box(interopp0);
+		MonoUtil::invokeThunk(onCollisionEndThunk, getManagedInstance(), tmpp0);
 	}
 	void ScriptCCollider::Internal_setIsTrigger(ScriptCColliderBase* thisPtr, bool value)
 	{

+ 3 - 3
Source/Scripting/SBansheeEngine/Generated/BsScriptCCollider.generated.h

@@ -28,11 +28,11 @@ namespace bs
 		void onCollisionStay(const CollisionData& p0);
 		void onCollisionEnd(const CollisionData& p0);
 
-		typedef void(BS_THUNKCALL *onCollisionBeginThunkDef) (MonoObject*, __CollisionDataInterop* p0, MonoException**);
+		typedef void(BS_THUNKCALL *onCollisionBeginThunkDef) (MonoObject*, MonoObject* p0, MonoException**);
 		static onCollisionBeginThunkDef onCollisionBeginThunk;
-		typedef void(BS_THUNKCALL *onCollisionStayThunkDef) (MonoObject*, __CollisionDataInterop* p0, MonoException**);
+		typedef void(BS_THUNKCALL *onCollisionStayThunkDef) (MonoObject*, MonoObject* p0, MonoException**);
 		static onCollisionStayThunkDef onCollisionStayThunk;
-		typedef void(BS_THUNKCALL *onCollisionEndThunkDef) (MonoObject*, __CollisionDataInterop* p0, MonoException**);
+		typedef void(BS_THUNKCALL *onCollisionEndThunkDef) (MonoObject*, MonoObject* p0, MonoException**);
 		static onCollisionEndThunkDef onCollisionEndThunk;
 
 		static void Internal_setIsTrigger(ScriptCColliderBase* thisPtr, bool value);

+ 15 - 9
Source/Scripting/SBansheeEngine/Generated/BsScriptCRigidbody.generated.cpp

@@ -72,23 +72,29 @@ namespace bs
 
 	void ScriptCRigidbody::onCollisionBegin(const CollisionData& p0)
 	{
-		__CollisionDataInterop tmpp0;
-		tmpp0 = ScriptCollisionData::toInterop(p0);
-		MonoUtil::invokeThunk(onCollisionBeginThunk, getManagedInstance(), &tmpp0);
+		MonoObject* tmpp0;
+		__CollisionDataInterop interopp0;
+		interopp0 = ScriptCollisionData::toInterop(p0);
+		tmpp0 = ScriptCollisionData::box(interopp0);
+		MonoUtil::invokeThunk(onCollisionBeginThunk, getManagedInstance(), tmpp0);
 	}
 
 	void ScriptCRigidbody::onCollisionStay(const CollisionData& p0)
 	{
-		__CollisionDataInterop tmpp0;
-		tmpp0 = ScriptCollisionData::toInterop(p0);
-		MonoUtil::invokeThunk(onCollisionStayThunk, getManagedInstance(), &tmpp0);
+		MonoObject* tmpp0;
+		__CollisionDataInterop interopp0;
+		interopp0 = ScriptCollisionData::toInterop(p0);
+		tmpp0 = ScriptCollisionData::box(interopp0);
+		MonoUtil::invokeThunk(onCollisionStayThunk, getManagedInstance(), tmpp0);
 	}
 
 	void ScriptCRigidbody::onCollisionEnd(const CollisionData& p0)
 	{
-		__CollisionDataInterop tmpp0;
-		tmpp0 = ScriptCollisionData::toInterop(p0);
-		MonoUtil::invokeThunk(onCollisionEndThunk, getManagedInstance(), &tmpp0);
+		MonoObject* tmpp0;
+		__CollisionDataInterop interopp0;
+		interopp0 = ScriptCollisionData::toInterop(p0);
+		tmpp0 = ScriptCollisionData::box(interopp0);
+		MonoUtil::invokeThunk(onCollisionEndThunk, getManagedInstance(), tmpp0);
 	}
 	void ScriptCRigidbody::Internal_move(ScriptCRigidbody* thisPtr, Vector3* position)
 	{

+ 3 - 3
Source/Scripting/SBansheeEngine/Generated/BsScriptCRigidbody.generated.h

@@ -24,11 +24,11 @@ namespace bs
 		void onCollisionStay(const CollisionData& p0);
 		void onCollisionEnd(const CollisionData& p0);
 
-		typedef void(BS_THUNKCALL *onCollisionBeginThunkDef) (MonoObject*, __CollisionDataInterop* p0, MonoException**);
+		typedef void(BS_THUNKCALL *onCollisionBeginThunkDef) (MonoObject*, MonoObject* p0, MonoException**);
 		static onCollisionBeginThunkDef onCollisionBeginThunk;
-		typedef void(BS_THUNKCALL *onCollisionStayThunkDef) (MonoObject*, __CollisionDataInterop* p0, MonoException**);
+		typedef void(BS_THUNKCALL *onCollisionStayThunkDef) (MonoObject*, MonoObject* p0, MonoException**);
 		static onCollisionStayThunkDef onCollisionStayThunk;
-		typedef void(BS_THUNKCALL *onCollisionEndThunkDef) (MonoObject*, __CollisionDataInterop* p0, MonoException**);
+		typedef void(BS_THUNKCALL *onCollisionEndThunkDef) (MonoObject*, MonoObject* p0, MonoException**);
 		static onCollisionEndThunkDef onCollisionEndThunk;
 
 		static void Internal_move(ScriptCRigidbody* thisPtr, Vector3* position);

+ 1 - 1
Source/bsf

@@ -1 +1 @@
-Subproject commit 629b8d33a2741ec1aecddc1b252a4bd448501569
+Subproject commit b34c559f0b34d609db344014df2d042f133280e7