Răsfoiți Sursa

Documentation

Marko Pintera 10 ani în urmă
părinte
comite
e3d3e734a2

+ 0 - 2
SBansheeEngine/Include/BsScriptFont.h

@@ -12,8 +12,6 @@ namespace BansheeEngine
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "Font")
 
-		void* getNativeRaw() const { return mFont.get(); }
-
 		HResource getNativeHandle() const { return mFont; }
 		void setNativeHandle(const HResource& resource);
 	private:

+ 13 - 5
SBansheeEngine/Include/BsScriptGUIInputBox.h

@@ -6,23 +6,31 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for GUIInputBox.
+	 */
 	class BS_SCR_BE_EXPORT ScriptGUIInputBox : public TScriptGUIElement<ScriptGUIInputBox>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUITextBox")
 
 	private:
-		static void internal_createInstance(MonoObject* instance, bool multiline, MonoString* style, MonoArray* guiOptions);
+		ScriptGUIInputBox(MonoObject* instance, GUIInputBox* inputBox);
 
+		/**
+		 * @brief	Triggered when the value in the native input box changes.
+		 */
+		static void onChanged(MonoObject* instance, const WString& newValue);
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
+		static void internal_createInstance(MonoObject* instance, bool multiline, MonoString* style, MonoArray* guiOptions);
 		static void internal_setText(ScriptGUIInputBox* nativeInstance, MonoString* text);
 		static void internal_getText(ScriptGUIInputBox* nativeInstance, MonoString** text);
 		static void internal_setTint(ScriptGUIInputBox* nativeInstance, Color color);
 
-		static void onChanged(MonoObject* instance, const WString& newValue);
-
 		typedef void(__stdcall *OnChangedThunkDef) (MonoObject*, MonoString*, MonoException**);
 		static OnChangedThunkDef onChangedThunk;
-
-		ScriptGUIInputBox(MonoObject* instance, GUIInputBox* inputBox);
 	};
 }

+ 8 - 2
SBansheeEngine/Include/BsScriptGUILabel.h

@@ -5,16 +5,22 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for GUILabel.
+	 */
 	class BS_SCR_BE_EXPORT ScriptGUILabel : public TScriptGUIElement<ScriptGUILabel>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUILabel")
 
 	private:
+		ScriptGUILabel(MonoObject* instance, GUILabel* label);
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
 		static void internal_createInstance(MonoObject* instance, MonoObject* content, MonoString* style, MonoArray* guiOptions);
 		static void internal_setContent(ScriptGUILabel* nativeInstance, MonoObject* content);
 		static void internal_setTint(ScriptGUILabel* nativeInstance, Color color);
-
-		ScriptGUILabel(MonoObject* instance, GUILabel* label);
 	};
 }

+ 55 - 8
SBansheeEngine/Include/BsScriptGUILayout.h

@@ -5,8 +5,15 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for GUILayout derived classes.
+	 */
 	class BS_SCR_BE_EXPORT ScriptGUILayout : public TScriptGUIElementBase<ScriptGUILayout>
 	{
+		/**
+		 * @brief	Contains information about an interop object that represents
+		 *			a child of the layout.
+		 */
 		struct ChildInfo
 		{
 			ScriptGUIElementBaseTBase* element;
@@ -16,19 +23,60 @@ namespace BansheeEngine
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUILayout")
 
+		/**
+		 * @brief	Returns the internal wrapped GUILayout object.
+		 */
 		GUILayout* getInternalValue() const { return mLayout; }
-		void* getNativeRaw() const { return mLayout; }
 
+		/**
+		 * @brief	Registers a new managed child GUI element and inserts it at
+		 *			the end of the layout.
+		 */
 		void addChild(ScriptGUIElementBaseTBase* element);
+
+		/**
+		 * @brief	Registers a new managed child GUI element and inserts it at a specific
+		 *			location in the layout.
+		 */
 		void insertChild(UINT32 index, ScriptGUIElementBaseTBase* element);
+
+		/**
+		 * @brief	Removes a managed GUI element from the layout.
+		 */
 		void removeChild(ScriptGUIElementBaseTBase* element);
 
+		/**
+		 * @copydoc	ScriptGUIElementBaseTBase::destroy
+		 *
+		 * Destroys the layout and all of its managed children.
+		 */
 		void destroy() override;
+
+		/**
+		 * @brief	Destroys all of the layout managed children.
+		 *
+		 * @note	Useful if the children are managed but the layer itself is not.
+		 */
 		void destroyChildren();
+
+		/**
+		 * @brief	Marks the layout as destroyed. When destroyed managed operations will be ignored
+		 *			or return default values.
+		 */
 		void markAsDestroyed();
 	private:
 		friend class ScriptGUIPanel;
 
+		ScriptGUILayout(MonoObject* instance, GUILayout* layout);
+
+		GUILayout* mLayout;
+		Vector<ChildInfo> mChildren;
+
+		bool mIsDestroyed;
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
 		static void internal_createInstanceX(MonoObject* instance, MonoArray* guiOptions);
 		static void internal_createInstanceY(MonoObject* instance, MonoArray* guiOptions);
 		static void internal_createInstancePanel(MonoObject* instance, INT16 depth, UINT16 depthRangeMin, UINT32 depthRangeMax, MonoArray* guiOptions);
@@ -38,20 +86,19 @@ namespace BansheeEngine
 		static MonoObject* internal_getChild(ScriptGUILayout* instance, UINT32 index);
 
 		static void internal_createInstanceYFromScrollArea(MonoObject* instance, MonoObject* parentScrollArea);
-
-		ScriptGUILayout(MonoObject* instance, GUILayout* layout);
-
-		GUILayout* mLayout;
-		Vector<ChildInfo> mChildren;
-
-		bool mIsDestroyed;
 	};
 
+	/**
+	 * @brief	Interop class between C++ & CLR for GUIPanel. 
+	 */
 	class BS_SCR_BE_EXPORT ScriptGUIPanel : public ScriptObject<ScriptGUIPanel>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUIPanel")
 
+		/**
+		 * @brief	Creates a new managed GUIPanel that wraps the provided native GUIPanel.
+		 */
 		static MonoObject* createFromExisting(GUIPanel* panel);
 	private:
 		ScriptGUIPanel(MonoObject* instance);

+ 6 - 0
SBansheeEngine/Include/BsScriptGUILayoutUtility.h

@@ -8,6 +8,9 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for GUILayoutUtility. 
+	 */
 	class BS_SCR_BE_EXPORT ScriptGUILayoutUtility : public ScriptObject<ScriptGUILayoutUtility>
 	{
 	public:
@@ -16,6 +19,9 @@ namespace BansheeEngine
 		ScriptGUILayoutUtility();
 
 	private:
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
 		static void internal_CalculateOptimalSize(ScriptGUIElementBaseTBase* guiElement, Vector2I* output);
 		static void internal_CalculateBounds(ScriptGUIElementBaseTBase* guiElement, ScriptGUILayout* relativeTo, Rect2I* output);
 	};

+ 13 - 4
SBansheeEngine/Include/BsScriptGUIListBox.h

@@ -6,19 +6,28 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for GUIListBox. 
+	 */
 	class BS_SCR_BE_EXPORT ScriptGUIListBox : public TScriptGUIElement<ScriptGUIListBox>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUIListBox")
 
 	private:
-		static void internal_createInstance(MonoObject* instance, MonoArray* elements, MonoString* style, MonoArray* guiOptions);
-		static void internal_setElements(ScriptGUIListBox* nativeInstance, MonoArray* elements);
-		static void internal_setTint(ScriptGUIListBox* nativeInstance, Color color);
+		ScriptGUIListBox(MonoObject* instance, GUIListBox* listBox);
 
+		/**
+		 * @brief	Triggered when the selected index in the native list box changes.
+		 */
 		static void onSelectionChanged(MonoObject* instance, UINT32 index);
 
-		ScriptGUIListBox(MonoObject* instance, GUIListBox* listBox);
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
+		static void internal_createInstance(MonoObject* instance, MonoArray* elements, MonoString* style, MonoArray* guiOptions);
+		static void internal_setElements(ScriptGUIListBox* nativeInstance, MonoArray* elements);
+		static void internal_setTint(ScriptGUIListBox* nativeInstance, Color color);
 
 		typedef void (__stdcall *OnSelectionChangedThunkDef) (MonoObject*, UINT32, MonoException**);
 		static OnSelectionChangedThunkDef onSelectionChangedThunk;

+ 8 - 2
SBansheeEngine/Include/BsScriptGUIProgressBar.h

@@ -5,17 +5,23 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for GUIProgressBar. 
+	 */
 	class BS_SCR_BE_EXPORT ScriptGUIProgressBar : public TScriptGUIElement <ScriptGUIProgressBar>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUIProgressBar")
 
 	private:
+		ScriptGUIProgressBar(MonoObject* instance, GUIProgressBar* progressBar);
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
 		static void internal_createInstance(MonoObject* instance, MonoString* style, MonoArray* guiOptions);
 		static void internal_setPercent(ScriptGUIProgressBar* nativeInstance, float percent);
 		static float internal_getPercent(ScriptGUIProgressBar* nativeInstance);
 		static void internal_setTint(ScriptGUIProgressBar* nativeInstance, Color color);
-
-		ScriptGUIProgressBar(MonoObject* instance, GUIProgressBar* progressBar);
 	};
 }

+ 8 - 2
SBansheeEngine/Include/BsScriptGUIRenderTexture.h

@@ -5,17 +5,23 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for GUIRenderTexture. 
+	 */
 	class BS_SCR_BE_EXPORT ScriptGUIRenderTexture : public TScriptGUIElement < ScriptGUIRenderTexture >
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUIRenderTexture")
 
 	private:
+		ScriptGUIRenderTexture(MonoObject* instance, GUIRenderTexture* texture);
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
 		static void internal_createInstance(MonoObject* instance, ScriptRenderTexture2D* texture,
 			MonoString* style, MonoArray* guiOptions);
 		static void internal_setTexture(ScriptGUIRenderTexture* nativeInstance, ScriptRenderTexture2D* texture);
 		static void internal_setTint(ScriptGUIRenderTexture* nativeInstance, Color color);
-
-		ScriptGUIRenderTexture(MonoObject* instance, GUIRenderTexture* texture);
 	};
 }

+ 8 - 2
SBansheeEngine/Include/BsScriptGUIScrollArea.h

@@ -6,12 +6,20 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for GUIScrollArea. 
+	 */
 	class BS_SCR_BE_EXPORT ScriptGUIScrollArea : public TScriptGUIElement<ScriptGUIScrollArea>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUIScrollArea")
 
 	private:
+		ScriptGUIScrollArea(MonoObject* instance, GUIScrollArea* scrollArea);
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
 		static void internal_createInstance(MonoObject* instance, ScrollBarType vertBarType, ScrollBarType horzBarType, 
 			MonoString* scrollBarStyle, MonoString* scrollAreaStyle, MonoArray* guiOptions);
 		static Rect2I internal_getContentBounds(ScriptGUIScrollArea* nativeInstance);
@@ -20,7 +28,5 @@ namespace BansheeEngine
 		static float internal_getVertScroll(ScriptGUIScrollArea* nativeInstance);
 		static void internal_setVertScroll(ScriptGUIScrollArea* nativeInstance, float value);
 		static int internal_getScrollBarWidth(ScriptGUIScrollArea* nativeInstance);
-
-		ScriptGUIScrollArea(MonoObject* instance, GUIScrollArea* scrollArea);
 	};
 }

+ 26 - 10
SBansheeEngine/Include/BsScriptGUISlider.h

@@ -5,43 +5,59 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for GUISliderH. 
+	 */
 	class BS_SCR_BE_EXPORT ScriptGUISliderH : public TScriptGUIElement<ScriptGUISliderH>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUISliderH")
 
 	private:
+		ScriptGUISliderH(MonoObject* instance, GUISliderHorz* slider);
+
+		/**
+		 * @brief	Triggered when the native slider is moved.
+		 */
+		static void onChanged(MonoObject* instance, float percent);
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
 		static void internal_createInstance(MonoObject* instance, MonoString* style, MonoArray* guiOptions);
 		static void internal_setPercent(ScriptGUISliderH* nativeInstance, float percent);
 		static float internal_getPercent(ScriptGUISliderH* nativeInstance);
 		static void internal_setTint(ScriptGUISliderH* nativeInstance, Color color);
 
-		static void onChanged(MonoObject* instance, float percent);
-
-		ScriptGUISliderH(MonoObject* instance, GUISliderHorz* slider);
-
 		typedef void(__stdcall *OnChangedThunkDef) (MonoObject*, float, MonoException**);
-
 		static OnChangedThunkDef onChangedThunk;
 	};
 
+	/**
+	 * @brief	Interop class between C++ & CLR for GUISliderV. 
+	 */
 	class BS_SCR_BE_EXPORT ScriptGUISliderV : public TScriptGUIElement<ScriptGUISliderV>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUISliderV")
 
 	private:
+		ScriptGUISliderV(MonoObject* instance, GUISliderVert* slider);
+
+		/**
+		 * @brief	Triggered when the native slider is moved.
+		 */
+		static void onChanged(MonoObject* instance, float percent);
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
 		static void internal_createInstance(MonoObject* instance, MonoString* style, MonoArray* guiOptions);
 		static void internal_setPercent(ScriptGUISliderV* nativeInstance, float percent);
 		static float internal_getPercent(ScriptGUISliderV* nativeInstance);
 		static void internal_setTint(ScriptGUISliderV* nativeInstance, Color color);
 
-		static void onChanged(MonoObject* instance, float percent);
-
-		ScriptGUISliderV(MonoObject* instance, GUISliderVert* slider);
-
 		typedef void(__stdcall *OnChangedThunkDef) (MonoObject*, float, MonoException**);
-
 		static OnChangedThunkDef onChangedThunk;
 	};
 }

+ 8 - 2
SBansheeEngine/Include/BsScriptGUITexture.h

@@ -6,17 +6,23 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for GUITexture. 
+	 */
 	class BS_SCR_BE_EXPORT ScriptGUITexture : public TScriptGUIElement<ScriptGUITexture>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUITexture")
 
 	private:
+		ScriptGUITexture(MonoObject* instance, GUITexture* texture);
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
 		static void internal_createInstance(MonoObject* instance, MonoObject* texture, 
 			GUIImageScaleMode scale, bool transparent, MonoString* style, MonoArray* guiOptions);
 		static void internal_setTexture(ScriptGUITexture* nativeInstance, MonoObject* texture);
 		static void internal_setTint(ScriptGUITexture* nativeInstance, Color color);
-
-		ScriptGUITexture(MonoObject* instance, GUITexture* texture);
 	};
 }

+ 28 - 7
SBansheeEngine/Include/BsScriptGUIToggle.h

@@ -5,25 +5,46 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for GUIToggle. 
+	 */
 	class BS_SCR_BE_EXPORT ScriptGUIToggle : public TScriptGUIElement<ScriptGUIToggle>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUIToggle")
 
 	private:
-		static void internal_createInstance(MonoObject* instance, MonoObject* content, 
-			MonoObject* toggleGroup, MonoString* style, MonoArray* guiOptions);
-		static void internal_setContent(ScriptGUIToggle* nativeInstance, MonoObject* content);
-		static void internal_toggleOn(ScriptGUIToggle* nativeInstance);
-		static void internal_toggleOff(ScriptGUIToggle* nativeInstance);
-		static void internal_setTint(ScriptGUIToggle* nativeInstance, Color color);
+		ScriptGUIToggle(MonoObject* instance, GUIToggle* toggle);
 
+		/**
+		 * @brief	Triggered when the native toggle button is clicked.
+		 */
 		static void onClick(MonoObject* instance);
+
+		/**
+		 * @brief	Triggered when the native toggle button is hover over.
+		 */
 		static void onHover(MonoObject* instance);
+
+		/**
+		 * @brief	Triggered when the pointer leaves the native toggle button.
+		 */
 		static void onOut(MonoObject* instance);
+
+		/**
+		 * @brief	Triggered when the native toggle button is toggled.
+		 */
 		static void onToggled(MonoObject* instance, bool toggled);
 
-		ScriptGUIToggle(MonoObject* instance, GUIToggle* toggle);
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
+		static void internal_createInstance(MonoObject* instance, MonoObject* content,
+			MonoObject* toggleGroup, MonoString* style, MonoArray* guiOptions);
+		static void internal_setContent(ScriptGUIToggle* nativeInstance, MonoObject* content);
+		static void internal_toggleOn(ScriptGUIToggle* nativeInstance);
+		static void internal_toggleOff(ScriptGUIToggle* nativeInstance);
+		static void internal_setTint(ScriptGUIToggle* nativeInstance, Color color);
 
 		typedef void (__stdcall *OnClickThunkDef) (MonoObject*, MonoException**);
 		typedef void (__stdcall *OnHoverThunkDef) (MonoObject*, MonoException**);

+ 11 - 3
SBansheeEngine/Include/BsScriptGUIToggleGroup.h

@@ -5,19 +5,27 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for GUIToggleGroup. 
+	 */
 	class BS_SCR_BE_EXPORT ScriptGUIToggleGroup : public ScriptObject<ScriptGUIToggleGroup>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "GUIToggleGroup")
 
+		/**
+		 * @brief	Returns the native toggle group that this object wraps.
+		 */
 		std::shared_ptr<GUIToggleGroup> getInternalValue() const { return mToggleGroup; }
-		void* getNativeRaw() const { return mToggleGroup.get(); }
 
 	private:
-		static void internal_createInstance(MonoObject* instance);
-
 		ScriptGUIToggleGroup(MonoObject* instance, const std::shared_ptr<GUIToggleGroup>& toggleGroup);
 
 		std::shared_ptr<GUIToggleGroup> mToggleGroup;
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
+		static void internal_createInstance(MonoObject* instance);
 	};
 }

+ 0 - 1
SBansheeEngine/Include/BsScriptHString.h

@@ -12,7 +12,6 @@ namespace BansheeEngine
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "LocString")
 
 		const HString& getInternalValue() const { return mString; }
-		void* getNativeRaw() const { return (void*)&mString; }
 
 	private:
 		static void internal_createInstance(MonoObject* instance, MonoString* identifier);

+ 0 - 2
SBansheeEngine/Include/BsScriptManagedResource.h

@@ -13,8 +13,6 @@ namespace BansheeEngine
 
 		ScriptManagedResource(MonoObject* instance, const HManagedResource& resource);
 
-		void* getNativeRaw() const { return mResource.get(); }
-
 		HResource getNativeHandle() const { return mResource; }
 		void setNativeHandle(const HResource& resource);
 	private:

+ 1 - 14
SBansheeEngine/Include/BsScriptObject.h

@@ -31,7 +31,6 @@ namespace BansheeEngine
 		virtual ~ScriptObjectBase();
 
 		MonoObject* getManagedInstance() const { return mManagedInstance; }
-		virtual void* getNativeRaw() const { return nullptr; }
 		virtual bool isPersistent() const { return false; }
 
 		virtual void _clearManagedInstance() { }
@@ -51,7 +50,7 @@ namespace BansheeEngine
 		PersistentScriptObjectBase(MonoObject* instance);
 		virtual ~PersistentScriptObjectBase();
 
-		virtual bool isPersistent() const { return true; }
+		virtual bool isPersistent() const override { return true; }
 	};
 
 	/**
@@ -124,18 +123,6 @@ namespace BansheeEngine
 	protected:
 		static ScriptMeta metaData;
 
-		template <class Type2, class Base2>
-		static void throwIfInstancesDontMatch(ScriptObject<Type2, Base2>* lhs, void* rhs)
-		{
-#if BS_DEBUG_MODE
-			if((lhs == nullptr && rhs != nullptr) || (rhs == nullptr && lhs != nullptr) || lhs->getNativeRaw() != rhs)
-			{
-				BS_EXCEPT(InvalidStateException, "Native and script instance do not match. This usually happens when you modify a native object " \
-					" that is also being referenced from script code. You should only modify such objects directly from script code.");
-			}
-#endif
-		}
-
 	private:
 		static InitScriptObjectOnStart<Type, Base> initOnStart;
 	};

+ 0 - 2
SBansheeEngine/Include/BsScriptPlainText.h

@@ -12,8 +12,6 @@ namespace BansheeEngine
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "PlainText")
 
-		void* getNativeRaw() const { return mPlainText.get(); }
-
 		HResource getNativeHandle() const { return mPlainText; }
 		void setNativeHandle(const HResource& resource);
 

+ 0 - 2
SBansheeEngine/Include/BsScriptScriptCode.h

@@ -12,8 +12,6 @@ namespace BansheeEngine
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "ScriptCode")
 
-		void* getNativeRaw() const { return mScriptCode.get(); }
-
 		HResource getNativeHandle() const { return mScriptCode; }
 		void setNativeHandle(const HResource& resource);
 

+ 0 - 2
SBansheeEngine/Include/BsScriptTexture2D.h

@@ -12,8 +12,6 @@ namespace BansheeEngine
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "Texture2D")
 
-		void* getNativeRaw() const { return mTexture.get(); }
-
 		HResource getNativeHandle() const { return mTexture; }
 		void setNativeHandle(const HResource& resource);
 

+ 0 - 2
SBansheeEngine/Include/BsScriptTexture3D.h

@@ -12,8 +12,6 @@ namespace BansheeEngine
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "Texture3D")
 
-		void* getNativeRaw() const { return mTexture.get(); }
-
 		HResource getNativeHandle() const { return mTexture; }
 		void setNativeHandle(const HResource& resource);
 

+ 0 - 2
SBansheeEngine/Include/BsScriptTextureCube.h

@@ -12,8 +12,6 @@ namespace BansheeEngine
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "TextureCube")
 
-		void* getNativeRaw() const { return mTexture.get(); }
-
 		HResource getNativeHandle() const { return mTexture; }
 		void setNativeHandle(const HResource& resource);
 

+ 0 - 2
SBansheeEngine/Source/BsScriptGUIElementStateStyle.cpp

@@ -48,8 +48,6 @@ namespace BansheeEngine
 
 	void ScriptGUIElementStateStyle::internal_GetTexture(ScriptGUIElementStateStyle* nativeInstance, MonoObject** value)
 	{
-		throwIfInstancesDontMatch(nativeInstance->mSpriteTexture, nativeInstance->mElementStateStyle->texture.get());	
-
 		if (nativeInstance->mSpriteTexture != nullptr)
 		{	
 			*value = nativeInstance->mSpriteTexture->getManagedInstance();

+ 51 - 69
SBansheeEngine/Source/BsScriptGUIElementStyle.cpp

@@ -39,57 +39,57 @@ namespace BansheeEngine
 		metaData.scriptClass->addInternalCall("Internal_GetFont", &ScriptGUIElementStyle::internal_GetFont);
 		metaData.scriptClass->addInternalCall("Internal_SetFont", &ScriptGUIElementStyle::internal_SetFont);
 
-		metaData.scriptClass->addInternalCall("Internal_GetFontSize", &ScriptGUIElementStyle::internal_GetFontSize);
-		metaData.scriptClass->addInternalCall("Internal_SetFontSize", &ScriptGUIElementStyle::internal_SetFontSize);
-		metaData.scriptClass->addInternalCall("Internal_GetTextHorzAlign", &ScriptGUIElementStyle::internal_GetTextHorzAlign);
-		metaData.scriptClass->addInternalCall("Internal_SetTextHorzAlign", &ScriptGUIElementStyle::internal_SetTextHorzAlign);
-		metaData.scriptClass->addInternalCall("Internal_GetTextVertAlign", &ScriptGUIElementStyle::internal_GetTextVertAlign);
-		metaData.scriptClass->addInternalCall("Internal_SetTextVertAlign", &ScriptGUIElementStyle::internal_SetTextVertAlign);
-		metaData.scriptClass->addInternalCall("Internal_GetImagePosition", &ScriptGUIElementStyle::internal_GetImagePosition);
-		metaData.scriptClass->addInternalCall("Internal_SetImagePosition", &ScriptGUIElementStyle::internal_SetImagePosition);
-		metaData.scriptClass->addInternalCall("Internal_GetWordWrap", &ScriptGUIElementStyle::internal_GetWordWrap);
-		metaData.scriptClass->addInternalCall("Internal_SetWordWrap", &ScriptGUIElementStyle::internal_SetWordWrap);
-
-		metaData.scriptClass->addInternalCall("Internal_GetNormal", &ScriptGUIElementStyle::internal_GetNormal);
-		metaData.scriptClass->addInternalCall("Internal_SetNormal", &ScriptGUIElementStyle::internal_SetNormal);
-		metaData.scriptClass->addInternalCall("Internal_GetHover", &ScriptGUIElementStyle::internal_GetHover);
-		metaData.scriptClass->addInternalCall("Internal_SetHover", &ScriptGUIElementStyle::internal_SetHover);
-		metaData.scriptClass->addInternalCall("Internal_GetActive", &ScriptGUIElementStyle::internal_GetActive);
-		metaData.scriptClass->addInternalCall("Internal_SetActive", &ScriptGUIElementStyle::internal_SetActive);
-		metaData.scriptClass->addInternalCall("Internal_GetFocused", &ScriptGUIElementStyle::internal_GetFocused);
-		metaData.scriptClass->addInternalCall("Internal_SetFocused", &ScriptGUIElementStyle::internal_SetFocused);
-
-		metaData.scriptClass->addInternalCall("Internal_GetNormalOn", &ScriptGUIElementStyle::internal_GetNormalOn);
-		metaData.scriptClass->addInternalCall("Internal_SetNormalOn", &ScriptGUIElementStyle::internal_SetNormalOn);
-		metaData.scriptClass->addInternalCall("Internal_GetHoverOn", &ScriptGUIElementStyle::internal_GetHoverOn);
-		metaData.scriptClass->addInternalCall("Internal_SetHoverOn", &ScriptGUIElementStyle::internal_SetHoverOn);
-		metaData.scriptClass->addInternalCall("Internal_GetActiveOn", &ScriptGUIElementStyle::internal_GetActiveOn);
-		metaData.scriptClass->addInternalCall("Internal_SetActiveOn", &ScriptGUIElementStyle::internal_SetActiveOn);
-		metaData.scriptClass->addInternalCall("Internal_GetFocusedOn", &ScriptGUIElementStyle::internal_GetFocusedOn);
-		metaData.scriptClass->addInternalCall("Internal_SetFocusedOn", &ScriptGUIElementStyle::internal_SetFocusedOn);
-
-		metaData.scriptClass->addInternalCall("Internal_GetBorder", &ScriptGUIElementStyle::internal_GetBorder);
-		metaData.scriptClass->addInternalCall("Internal_SetBorder", &ScriptGUIElementStyle::internal_SetBorder);
-		metaData.scriptClass->addInternalCall("Internal_GetMargins", &ScriptGUIElementStyle::internal_GetMargins);
-		metaData.scriptClass->addInternalCall("Internal_SetMargins", &ScriptGUIElementStyle::internal_SetMargins);
-		metaData.scriptClass->addInternalCall("Internal_GetContentOffset", &ScriptGUIElementStyle::internal_GetContentOffset);
-		metaData.scriptClass->addInternalCall("Internal_SetContentOffset", &ScriptGUIElementStyle::internal_SetContentOffset);
-
-		metaData.scriptClass->addInternalCall("Internal_GetWidth", &ScriptGUIElementStyle::internal_GetWidth);
-		metaData.scriptClass->addInternalCall("Internal_SetWidth", &ScriptGUIElementStyle::internal_SetWidth);
-		metaData.scriptClass->addInternalCall("Internal_GetHeight", &ScriptGUIElementStyle::internal_GetHeight);
-		metaData.scriptClass->addInternalCall("Internal_SetHeight", &ScriptGUIElementStyle::internal_SetHeight);
-		metaData.scriptClass->addInternalCall("Internal_GetMinWidth", &ScriptGUIElementStyle::internal_GetMinWidth);
-		metaData.scriptClass->addInternalCall("Internal_SetMinWidth", &ScriptGUIElementStyle::internal_SetMinWidth);
-		metaData.scriptClass->addInternalCall("Internal_GetMaxWidth", &ScriptGUIElementStyle::internal_GetMaxWidth);
-		metaData.scriptClass->addInternalCall("Internal_SetMaxWidth", &ScriptGUIElementStyle::internal_SetMaxWidth);
-		metaData.scriptClass->addInternalCall("Internal_GetMinHeight", &ScriptGUIElementStyle::internal_GetMinHeight);
-		metaData.scriptClass->addInternalCall("Internal_SetMinHeight", &ScriptGUIElementStyle::internal_SetMinHeight);
-		metaData.scriptClass->addInternalCall("Internal_GetMaxHeight", &ScriptGUIElementStyle::internal_GetMaxHeight);
-		metaData.scriptClass->addInternalCall("Internal_SetMaxHeight", &ScriptGUIElementStyle::internal_SetMaxHeight);
-		metaData.scriptClass->addInternalCall("Internal_GetFixedWidth", &ScriptGUIElementStyle::internal_GetFixedWidth);
-		metaData.scriptClass->addInternalCall("Internal_SetFixedWidth", &ScriptGUIElementStyle::internal_SetFixedWidth);
-		metaData.scriptClass->addInternalCall("Internal_GetFixedHeight", &ScriptGUIElementStyle::internal_GetFixedHeight);
+		metaData.scriptClass->addInternalCall("Internal_GetFontSize", &ScriptGUIElementStyle::internal_GetFontSize);
+		metaData.scriptClass->addInternalCall("Internal_SetFontSize", &ScriptGUIElementStyle::internal_SetFontSize);
+		metaData.scriptClass->addInternalCall("Internal_GetTextHorzAlign", &ScriptGUIElementStyle::internal_GetTextHorzAlign);
+		metaData.scriptClass->addInternalCall("Internal_SetTextHorzAlign", &ScriptGUIElementStyle::internal_SetTextHorzAlign);
+		metaData.scriptClass->addInternalCall("Internal_GetTextVertAlign", &ScriptGUIElementStyle::internal_GetTextVertAlign);
+		metaData.scriptClass->addInternalCall("Internal_SetTextVertAlign", &ScriptGUIElementStyle::internal_SetTextVertAlign);
+		metaData.scriptClass->addInternalCall("Internal_GetImagePosition", &ScriptGUIElementStyle::internal_GetImagePosition);
+		metaData.scriptClass->addInternalCall("Internal_SetImagePosition", &ScriptGUIElementStyle::internal_SetImagePosition);
+		metaData.scriptClass->addInternalCall("Internal_GetWordWrap", &ScriptGUIElementStyle::internal_GetWordWrap);
+		metaData.scriptClass->addInternalCall("Internal_SetWordWrap", &ScriptGUIElementStyle::internal_SetWordWrap);
+
+		metaData.scriptClass->addInternalCall("Internal_GetNormal", &ScriptGUIElementStyle::internal_GetNormal);
+		metaData.scriptClass->addInternalCall("Internal_SetNormal", &ScriptGUIElementStyle::internal_SetNormal);
+		metaData.scriptClass->addInternalCall("Internal_GetHover", &ScriptGUIElementStyle::internal_GetHover);
+		metaData.scriptClass->addInternalCall("Internal_SetHover", &ScriptGUIElementStyle::internal_SetHover);
+		metaData.scriptClass->addInternalCall("Internal_GetActive", &ScriptGUIElementStyle::internal_GetActive);
+		metaData.scriptClass->addInternalCall("Internal_SetActive", &ScriptGUIElementStyle::internal_SetActive);
+		metaData.scriptClass->addInternalCall("Internal_GetFocused", &ScriptGUIElementStyle::internal_GetFocused);
+		metaData.scriptClass->addInternalCall("Internal_SetFocused", &ScriptGUIElementStyle::internal_SetFocused);
+
+		metaData.scriptClass->addInternalCall("Internal_GetNormalOn", &ScriptGUIElementStyle::internal_GetNormalOn);
+		metaData.scriptClass->addInternalCall("Internal_SetNormalOn", &ScriptGUIElementStyle::internal_SetNormalOn);
+		metaData.scriptClass->addInternalCall("Internal_GetHoverOn", &ScriptGUIElementStyle::internal_GetHoverOn);
+		metaData.scriptClass->addInternalCall("Internal_SetHoverOn", &ScriptGUIElementStyle::internal_SetHoverOn);
+		metaData.scriptClass->addInternalCall("Internal_GetActiveOn", &ScriptGUIElementStyle::internal_GetActiveOn);
+		metaData.scriptClass->addInternalCall("Internal_SetActiveOn", &ScriptGUIElementStyle::internal_SetActiveOn);
+		metaData.scriptClass->addInternalCall("Internal_GetFocusedOn", &ScriptGUIElementStyle::internal_GetFocusedOn);
+		metaData.scriptClass->addInternalCall("Internal_SetFocusedOn", &ScriptGUIElementStyle::internal_SetFocusedOn);
+
+		metaData.scriptClass->addInternalCall("Internal_GetBorder", &ScriptGUIElementStyle::internal_GetBorder);
+		metaData.scriptClass->addInternalCall("Internal_SetBorder", &ScriptGUIElementStyle::internal_SetBorder);
+		metaData.scriptClass->addInternalCall("Internal_GetMargins", &ScriptGUIElementStyle::internal_GetMargins);
+		metaData.scriptClass->addInternalCall("Internal_SetMargins", &ScriptGUIElementStyle::internal_SetMargins);
+		metaData.scriptClass->addInternalCall("Internal_GetContentOffset", &ScriptGUIElementStyle::internal_GetContentOffset);
+		metaData.scriptClass->addInternalCall("Internal_SetContentOffset", &ScriptGUIElementStyle::internal_SetContentOffset);
+
+		metaData.scriptClass->addInternalCall("Internal_GetWidth", &ScriptGUIElementStyle::internal_GetWidth);
+		metaData.scriptClass->addInternalCall("Internal_SetWidth", &ScriptGUIElementStyle::internal_SetWidth);
+		metaData.scriptClass->addInternalCall("Internal_GetHeight", &ScriptGUIElementStyle::internal_GetHeight);
+		metaData.scriptClass->addInternalCall("Internal_SetHeight", &ScriptGUIElementStyle::internal_SetHeight);
+		metaData.scriptClass->addInternalCall("Internal_GetMinWidth", &ScriptGUIElementStyle::internal_GetMinWidth);
+		metaData.scriptClass->addInternalCall("Internal_SetMinWidth", &ScriptGUIElementStyle::internal_SetMinWidth);
+		metaData.scriptClass->addInternalCall("Internal_GetMaxWidth", &ScriptGUIElementStyle::internal_GetMaxWidth);
+		metaData.scriptClass->addInternalCall("Internal_SetMaxWidth", &ScriptGUIElementStyle::internal_SetMaxWidth);
+		metaData.scriptClass->addInternalCall("Internal_GetMinHeight", &ScriptGUIElementStyle::internal_GetMinHeight);
+		metaData.scriptClass->addInternalCall("Internal_SetMinHeight", &ScriptGUIElementStyle::internal_SetMinHeight);
+		metaData.scriptClass->addInternalCall("Internal_GetMaxHeight", &ScriptGUIElementStyle::internal_GetMaxHeight);
+		metaData.scriptClass->addInternalCall("Internal_SetMaxHeight", &ScriptGUIElementStyle::internal_SetMaxHeight);
+		metaData.scriptClass->addInternalCall("Internal_GetFixedWidth", &ScriptGUIElementStyle::internal_GetFixedWidth);
+		metaData.scriptClass->addInternalCall("Internal_SetFixedWidth", &ScriptGUIElementStyle::internal_SetFixedWidth);
+		metaData.scriptClass->addInternalCall("Internal_GetFixedHeight", &ScriptGUIElementStyle::internal_GetFixedHeight);
 		metaData.scriptClass->addInternalCall("Internal_SetFixedHeight", &ScriptGUIElementStyle::internal_SetFixedHeight);
 	}
 
@@ -121,8 +121,6 @@ namespace BansheeEngine
 
 	void ScriptGUIElementStyle::internal_GetFont(ScriptGUIElementStyle* nativeInstance, MonoObject** value)
 	{
-		throwIfInstancesDontMatch(nativeInstance->mFont, nativeInstance->mElementStyle->font.get());
-
 		if (nativeInstance->mFont != nullptr)
 		{
 			*value = nativeInstance->mFont->getManagedInstance();
@@ -191,8 +189,6 @@ namespace BansheeEngine
 
 	void ScriptGUIElementStyle::internal_GetNormal(ScriptGUIElementStyle* nativeInstance, MonoObject** value)
 	{
-		throwIfInstancesDontMatch(nativeInstance->mNormal, &nativeInstance->mElementStyle->normal);
-
 		if (nativeInstance->mNormal != nullptr)
 		{
 			*value = nativeInstance->mNormal->getManagedInstance();
@@ -212,8 +208,6 @@ namespace BansheeEngine
 
 	void ScriptGUIElementStyle::internal_GetHover(ScriptGUIElementStyle* nativeInstance, MonoObject** value)
 	{
-		throwIfInstancesDontMatch(nativeInstance->mHover, &nativeInstance->mElementStyle->hover);
-
 		if (nativeInstance->mHover != nullptr)
 		{
 			*value = nativeInstance->mHover->getManagedInstance();
@@ -232,8 +226,6 @@ namespace BansheeEngine
 
 	void ScriptGUIElementStyle::internal_GetActive(ScriptGUIElementStyle* nativeInstance, MonoObject** value)
 	{
-		throwIfInstancesDontMatch(nativeInstance->mActive, &nativeInstance->mElementStyle->active);
-
 		if (nativeInstance->mActive != nullptr)
 		{
 			*value = nativeInstance->mActive->getManagedInstance();
@@ -252,8 +244,6 @@ namespace BansheeEngine
 
 	void ScriptGUIElementStyle::internal_GetFocused(ScriptGUIElementStyle* nativeInstance, MonoObject** value)
 	{
-		throwIfInstancesDontMatch(nativeInstance->mFocused, &nativeInstance->mElementStyle->focused);
-
 		if (nativeInstance->mFocused != nullptr)
 		{
 			*value = nativeInstance->mFocused->getManagedInstance();
@@ -272,8 +262,6 @@ namespace BansheeEngine
 
 	void ScriptGUIElementStyle::internal_GetNormalOn(ScriptGUIElementStyle* nativeInstance, MonoObject** value)
 	{
-		throwIfInstancesDontMatch(nativeInstance->mNormalOn, &nativeInstance->mElementStyle->normalOn);
-
 		if (nativeInstance->mNormalOn != nullptr)
 		{
 			*value = nativeInstance->mNormalOn->getManagedInstance();
@@ -292,8 +280,6 @@ namespace BansheeEngine
 
 	void ScriptGUIElementStyle::internal_GetHoverOn(ScriptGUIElementStyle* nativeInstance, MonoObject** value)
 	{
-		throwIfInstancesDontMatch(nativeInstance->mHoverOn, &nativeInstance->mElementStyle->hoverOn);
-
 		if (nativeInstance->mHoverOn != nullptr)
 		{
 			*value = nativeInstance->mHoverOn->getManagedInstance();
@@ -312,8 +298,6 @@ namespace BansheeEngine
 
 	void ScriptGUIElementStyle::internal_GetActiveOn(ScriptGUIElementStyle* nativeInstance, MonoObject** value)
 	{
-		throwIfInstancesDontMatch(nativeInstance->mActiveOn, &nativeInstance->mElementStyle->activeOn);
-
 		if (nativeInstance->mActiveOn != nullptr)
 		{
 			*value = nativeInstance->mActiveOn->getManagedInstance();
@@ -332,8 +316,6 @@ namespace BansheeEngine
 
 	void ScriptGUIElementStyle::internal_GetFocusedOn(ScriptGUIElementStyle* nativeInstance, MonoObject** value)
 	{
-		throwIfInstancesDontMatch(nativeInstance->mFocusedOn, &nativeInstance->mElementStyle->focusedOn);
-
 		if (nativeInstance->mFocusedOn != nullptr)
 		{
 			*value = nativeInstance->mFocusedOn->getManagedInstance();