فهرست منبع

Moved all Script stuff to separate libraries #3

Marko Pintera 12 سال پیش
والد
کامیت
a5e124e2bc
30فایلهای تغییر یافته به همراه0 افزوده شده و 1490 حذف شده
  1. 0 52
      BansheeEngine/Include/BsScriptAssembly.h
  2. 0 24
      BansheeEngine/Include/BsScriptComponent.h
  3. 0 27
      BansheeEngine/Include/BsScriptFont.h
  4. 0 38
      BansheeEngine/Include/BsScriptGUIArea.h
  5. 0 25
      BansheeEngine/Include/BsScriptGUIBase.h
  6. 0 44
      BansheeEngine/Include/BsScriptGUIElementStateStyle.h
  7. 0 119
      BansheeEngine/Include/BsScriptGUIElementStyle.h
  8. 0 26
      BansheeEngine/Include/BsScriptGUILabel.h
  9. 0 31
      BansheeEngine/Include/BsScriptGUILayout.h
  10. 0 25
      BansheeEngine/Include/BsScriptGUIWidget.h
  11. 0 69
      BansheeEngine/Include/BsScriptMacros.h
  12. 0 19
      BansheeEngine/Include/BsScriptMeta.h
  13. 0 95
      BansheeEngine/Include/BsScriptObject.h
  14. 0 25
      BansheeEngine/Include/BsScriptSpriteTexture.h
  15. 0 26
      BansheeEngine/Include/BsScriptTexture2D.h
  16. 0 23
      BansheeEngine/Include/BsScriptUtil.h
  17. 0 26
      BansheeEngine/Source/BsEngineAssembly.cpp
  18. 0 129
      BansheeEngine/Source/BsScriptAssembly.cpp
  19. 0 26
      BansheeEngine/Source/BsScriptComponent.cpp
  20. 0 48
      BansheeEngine/Source/BsScriptFont.cpp
  21. 0 94
      BansheeEngine/Source/BsScriptGUIArea.cpp
  22. 0 48
      BansheeEngine/Source/BsScriptGUIBase.cpp
  23. 0 60
      BansheeEngine/Source/BsScriptGUIElementStateStyle.cpp
  24. 0 71
      BansheeEngine/Source/BsScriptGUIElementStyle.cpp
  25. 0 67
      BansheeEngine/Source/BsScriptGUILabel.cpp
  26. 0 74
      BansheeEngine/Source/BsScriptGUILayout.cpp
  27. 0 50
      BansheeEngine/Source/BsScriptGUIWidget.cpp
  28. 0 20
      BansheeEngine/Source/BsScriptMeta.cpp
  29. 0 44
      BansheeEngine/Source/BsScriptSpriteTexture.cpp
  30. 0 65
      BansheeEngine/Source/BsScriptTexture2D.cpp

+ 0 - 52
BansheeEngine/Include/BsScriptAssembly.h

@@ -1,52 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-#include <mono/jit/jit.h>
-#include <mono/metadata/assembly.h>
-
-namespace BansheeEngine
-{
-	class BS_EXPORT ScriptAssembly
-	{
-		struct ClassId
-		{
-			struct Hash
-			{
-				inline size_t operator()(const ClassId& v) const;
-			};
-
-			struct Equals
-			{
-				inline bool operator()(const ClassId &a, const ClassId &b) const;
-			};
-
-			ClassId(const CM::String& namespaceName, CM::String name);
-
-			CM::String namespaceName;
-			CM::String name;
-		};
-
-	public:
-		~ScriptAssembly();
-
-		ScriptClass& getClass(const CM::String& namespaceName, const CM::String& name);
-		MonoDomain* getDomain() const { return mDomain; }
-
-	private:
-		friend class ScriptManager;
-
-		ScriptAssembly();
-
-		void load(const CM::String& path, const CM::String& name);
-		void unload();
-
-		void initialize(const CM::String& entryPoint);
-
-		CM::String mName;
-		MonoDomain* mDomain;
-		MonoImage* mMonoImage;
-		MonoAssembly* mMonoAssembly;
-		bool mIsLoaded;
-		CM::UnorderedMap<ClassId, ScriptClass*, ClassId::Hash, ClassId::Equals>::type mClasses;
-	};
-}

+ 0 - 24
BansheeEngine/Include/BsScriptComponent.h

@@ -1,24 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "CmComponent.h"
-#include "BsScriptManager.h"
-
-namespace BansheeEngine
-{
-	class BS_EXPORT ScriptComponent : CM::Component
-	{
-	public:
-		virtual ~ScriptComponent() {}
-
-	protected:
-		friend class CM::SceneObject;
-
-		ScriptComponent(const CM::HSceneObject& parent, MonoObject* managedInstance);
-
-		virtual void update();
-
-		MonoObject* mManagedInstance;
-		std::function<void()> mUpdateThunk;
-	};
-}

+ 0 - 27
BansheeEngine/Include/BsScriptFont.h

@@ -1,27 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsScriptObject.h"
-#include "CmFont.h"
-
-namespace BansheeEngine
-{
-	class BS_EXPORT ScriptFont : public ScriptObject<ScriptFont>
-	{
-	public:
-		static void initMetaData();
-
-		void* getNativeRaw() const;
-		const CM::HFont& getInternalValue() const { return mFont; }
-
-	private:
-		static void internal_createInstanceExternal(MonoObject* instance, const CM::HFont& font);
-		static void internal_destroyInstance(ScriptFont* nativeInstance);
-
-		static void initRuntimeData();
-
-		ScriptFont(const CM::HFont& font);
-
-		CM::HFont mFont;
-	};
-}

+ 0 - 38
BansheeEngine/Include/BsScriptGUIArea.h

@@ -1,38 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsScriptObject.h"
-
-namespace BansheeEngine
-{
-	class BS_EXPORT ScriptGUIArea : public ScriptObject<ScriptGUIArea>
-	{
-	public:
-		static void initMetaData();
-
-		GUIArea* getInternalValue() const { return mArea; }
-		void* getNativeRaw() const { return mArea; }
-
-		GUIWidget& getParentWidget() const;
-
-	private:
-		static void internal_createInstance(MonoObject* instance, MonoObject* parentGUI, CM::INT32 x, CM::INT32 y, CM::UINT32 width, CM::UINT32 height, CM::UINT16 depth);
-		static void internal_createInstanceResizeableX(MonoObject* instance, MonoObject* parentGUI, CM::UINT32 offsetLeft, CM::UINT32 offsetRight, 
-			CM::UINT32 offsetTop, CM::UINT32 height, CM::UINT16 depth);
-
-		static void internal_createInstanceResizeableY(MonoObject* instance, MonoObject* parentGUI, CM::UINT32 offsetTop, 
-			CM::UINT32 offsetBottom, CM::UINT32 offsetLeft, CM::UINT32 width, CM::UINT16 depth);
-
-		static void internal_createInstanceResizeableXY(MonoObject* instance, MonoObject* parentGUI, CM::UINT32 offsetLeft, 
-			CM::UINT32 offsetRight, CM::UINT32 offsetTop, CM::UINT32 offsetBottom, CM::UINT16 depth);
-
-		static void internal_destroyInstance(ScriptGUIArea* nativeInstance);
-
-		static void initRuntimeData();
-
-		ScriptGUIArea(GUIArea* area, ScriptGUIBase* parentGUI);
-
-		GUIArea* mArea;
-		ScriptGUIBase* mParentGUI;
-	};
-}

+ 0 - 25
BansheeEngine/Include/BsScriptGUIBase.h

@@ -1,25 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsScriptObject.h"
-
-namespace BansheeEngine
-{
-	class BS_EXPORT ScriptGUIBase : public ScriptObject<ScriptGUIBase>
-	{
-	public:
-		static void initMetaData();
-
-		GUIWidget& getWidget() const { return mWidget; }
-
-	private:
-		static void internal_createInstance(MonoObject* instance);
-		static void internal_destroyInstance(ScriptGUIBase* nativeInstance);
-
-		static void initRuntimeData();
-
-		ScriptGUIBase(GUIWidget& widget);
-
-		GUIWidget& mWidget;
-	};
-}

+ 0 - 44
BansheeEngine/Include/BsScriptGUIElementStateStyle.h

@@ -1,44 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsScriptObject.h"
-#include "BsScriptClass.h"
-#include "BsGUIElementStyle.h"
-#include "BsScriptMacros.h"
-#include "BsScriptSpriteTexture.h"
-
-namespace BansheeEngine
-{
-	class BS_EXPORT ScriptGUIElementStateStyle : public ScriptObject<ScriptGUIElementStateStyle>
-	{
-	public:
-		~ScriptGUIElementStateStyle();
-
-		static void initMetaData();
-		GUIElementStyle::GUIElementStateStyle getInternalValue() const { return *mElementStateStyle; }
-
-	private:
-		static void internal_createInstance(MonoObject* instance);
-		static void internal_createInstanceExternal(MonoObject* instance, GUIElementStyle::GUIElementStateStyle* externalStateStyle);
-		static void internal_destroyInstance(ScriptGUIElementStateStyle* nativeInstance);
-
-		static void initRuntimeData()
-		{
-			metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptGUIElementStateStyle::internal_createInstance);
-			metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptGUIElementStateStyle::internal_destroyInstance);
-
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStateStyle, Texture);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStateStyle, TextColor);
-		}
-
-		CM_SCRIPT_GETSET_OBJECT_SHRDPTR(ScriptGUIElementStateStyle, ScriptSpriteTexture, Texture, mElementStateStyle->texture, mSpriteTexture);
-		CM_SCRIPT_GETSET_VALUE_REF(ScriptGUIElementStateStyle, CM::Color, TextColor, mElementStateStyle->textColor);
-
-		ScriptGUIElementStateStyle();
-		ScriptGUIElementStateStyle(GUIElementStyle::GUIElementStateStyle* externalStyle);
-
-		GUIElementStyle::GUIElementStateStyle* mElementStateStyle;
-		ScriptSpriteTexture* mSpriteTexture;
-		bool mOwnsStyle;
-	};
-}

+ 0 - 119
BansheeEngine/Include/BsScriptGUIElementStyle.h

@@ -1,119 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsScriptObject.h"
-#include "BsGUIElementStyle.h"
-#include "BsScriptMacros.h"
-#include "BsScriptClass.h"
-#include "BsScriptGUIElementStateStyle.h"
-#include "BsScriptFont.h"
-
-namespace BansheeEngine
-{
-	template<class ParentType, class Type>
-	class script_getset_value
-	{
-	private:
-		static void internal_get(ParentType* nativeInstance, Type* value);
-		static void internal_set(ParentType* nativeInstance, Type value);
-	};
-
-	class BS_EXPORT ScriptGUIElementStyle : public ScriptObject<ScriptGUIElementStyle>
-	{
-	public:
-		~ScriptGUIElementStyle();
-
-		static void initMetaData();
-		GUIElementStyle* getInternalValue() const { return mElementStyle; }
-
-	private:
-		static void internal_createInstance(MonoObject* instance, MonoString* name);
-		static void internal_createInstanceExternal(MonoObject* instance, MonoString* name, GUIElementStyle* externalStyle);
-		static void internal_destroyInstance(ScriptGUIElementStyle* nativeInstance);
-
-		static void initRuntimeData()
-		{
-			metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptGUIElementStyle::internal_createInstance);
-			metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptGUIElementStyle::internal_destroyInstance);
-
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, Font);
-
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, FontSize);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, TextHorzAlign);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, TextVertAlign);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, ImagePosition);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, WordWrap);
-
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, Normal);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, Hover);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, Active);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, Focused);
-
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, NormalOn);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, HoverOn);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, ActiveOn);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, FocusedOn);
-
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, Border);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, Margins);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, ContentOffset);
-
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, Width);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, Height);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, MinWidth);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, MaxWidth);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, MinHeight);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, MaxHeight);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, FixedWidth);
-			CM_SCRIPT_SETGET_META(ScriptGUIElementStyle, FixedHeight);
-		}
-
-		CM_SCRIPT_GETSET_OBJECT_SHRDPTR(ScriptGUIElementStyle, ScriptFont, Font, mElementStyle->font, mFont);
-
-		CM_SCRIPT_GETSET_VALUE(ScriptGUIElementStyle, CM::UINT32, FontSize, mElementStyle->fontSize);
-		CM_SCRIPT_GETSET_VALUE(ScriptGUIElementStyle, TextHorzAlign, TextHorzAlign, mElementStyle->textHorzAlign);
-		CM_SCRIPT_GETSET_VALUE(ScriptGUIElementStyle, TextVertAlign, TextVertAlign, mElementStyle->textVertAlign);
-		CM_SCRIPT_GETSET_VALUE(ScriptGUIElementStyle, GUIImagePosition, ImagePosition, mElementStyle->imagePosition);
-		CM_SCRIPT_GETSET_VALUE(ScriptGUIElementStyle, bool, WordWrap, mElementStyle->wordWrap);
-
-		CM_SCRIPT_GETSET_OBJECT(ScriptGUIElementStyle, ScriptGUIElementStateStyle, Normal, mElementStyle->normal, mNormal);
-		CM_SCRIPT_GETSET_OBJECT(ScriptGUIElementStyle, ScriptGUIElementStateStyle, Hover, mElementStyle->hover, mHover);
-		CM_SCRIPT_GETSET_OBJECT(ScriptGUIElementStyle, ScriptGUIElementStateStyle, Active, mElementStyle->active, mActive);
-		CM_SCRIPT_GETSET_OBJECT(ScriptGUIElementStyle, ScriptGUIElementStateStyle, Focused, mElementStyle->focused, mFocused);
-
-		CM_SCRIPT_GETSET_OBJECT(ScriptGUIElementStyle, ScriptGUIElementStateStyle, NormalOn, mElementStyle->normalOn, mNormalOn);
-		CM_SCRIPT_GETSET_OBJECT(ScriptGUIElementStyle, ScriptGUIElementStateStyle, HoverOn, mElementStyle->hoverOn, mHoverOn);
-		CM_SCRIPT_GETSET_OBJECT(ScriptGUIElementStyle, ScriptGUIElementStateStyle, ActiveOn, mElementStyle->activeOn, mActiveOn);
-		CM_SCRIPT_GETSET_OBJECT(ScriptGUIElementStyle, ScriptGUIElementStateStyle, FocusedOn, mElementStyle->focusedOn, mFocusedOn);
-
-		CM_SCRIPT_GETSET_VALUE_REF(ScriptGUIElementStyle, RectOffset, Border, mElementStyle->border);
-		CM_SCRIPT_GETSET_VALUE_REF(ScriptGUIElementStyle, RectOffset, Margins, mElementStyle->margins);
-		CM_SCRIPT_GETSET_VALUE_REF(ScriptGUIElementStyle, RectOffset, ContentOffset, mElementStyle->contentOffset);
-
-		CM_SCRIPT_GETSET_VALUE(ScriptGUIElementStyle, CM::UINT32, Width, mElementStyle->width);
-		CM_SCRIPT_GETSET_VALUE(ScriptGUIElementStyle, CM::UINT32, Height, mElementStyle->height);
-		CM_SCRIPT_GETSET_VALUE(ScriptGUIElementStyle, CM::UINT32, MinWidth, mElementStyle->minWidth);
-		CM_SCRIPT_GETSET_VALUE(ScriptGUIElementStyle, CM::UINT32, MaxWidth, mElementStyle->maxWidth);
-		CM_SCRIPT_GETSET_VALUE(ScriptGUIElementStyle, CM::UINT32, MinHeight, mElementStyle->minHeight);
-		CM_SCRIPT_GETSET_VALUE(ScriptGUIElementStyle, CM::UINT32, MaxHeight, mElementStyle->maxHeight);
-		CM_SCRIPT_GETSET_VALUE(ScriptGUIElementStyle, bool, FixedWidth, mElementStyle->fixedWidth);
-		CM_SCRIPT_GETSET_VALUE(ScriptGUIElementStyle, bool, FixedHeight, mElementStyle->fixedHeight);
-
-		ScriptGUIElementStyle(const CM::String& name);
-		ScriptGUIElementStyle(const CM::String& name, GUIElementStyle* externalStyle);
-
-		CM::String mName;
-		GUIElementStyle* mElementStyle;
-		bool mOwnsStyle;
-
-		ScriptFont* mFont;
-		ScriptGUIElementStateStyle* mNormal;
-		ScriptGUIElementStateStyle* mHover;
-		ScriptGUIElementStateStyle* mActive;
-		ScriptGUIElementStateStyle* mFocused;
-		ScriptGUIElementStateStyle* mNormalOn;
-		ScriptGUIElementStateStyle* mHoverOn;
-		ScriptGUIElementStateStyle* mActiveOn;
-		ScriptGUIElementStateStyle* mFocusedOn;
-	};
-}

+ 0 - 26
BansheeEngine/Include/BsScriptGUILabel.h

@@ -1,26 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsScriptObject.h"
-
-namespace BansheeEngine
-{
-	class BS_EXPORT ScriptGUILabel : public ScriptObject<ScriptGUILabel>
-	{
-	public:
-		static void initMetaData();
-
-		GUILabel* getInternalValue() const { return mLabel; }
-		void* getNativeRaw() const { return mLabel; }
-
-	private:
-		static void internal_createInstance(MonoObject* instance, MonoObject* parentLayout, MonoString* label, MonoObject* style, MonoArray* guiOptions);
-		static void internal_destroyInstance(ScriptGUILabel* nativeInstance);
-
-		static void initRuntimeData();
-
-		ScriptGUILabel(GUILabel* label);
-
-		GUILabel* mLabel;
-	};
-}

+ 0 - 31
BansheeEngine/Include/BsScriptGUILayout.h

@@ -1,31 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsScriptObject.h"
-
-namespace BansheeEngine
-{
-	class BS_EXPORT ScriptGUILayout : public ScriptObject<ScriptGUILayout>
-	{
-	public:
-		static void initMetaData();
-
-		GUILayout* getInternalValue() const { return mLayout; }
-		void* getNativeRaw() const { return mLayout; }
-
-		ScriptGUIArea* getParentArea() const { return mParentArea; }
-
-	private:
-		static void internal_createInstanceXFromArea(MonoObject* instance, MonoObject* parentArea);
-		static void internal_createInstanceXFromLayout(MonoObject* instance, MonoObject* parentLayout);
-		static void internal_createInstanceYFromLayout(MonoObject* instance, MonoObject* parentLayout);
-		static void internal_destroyInstance(ScriptGUILayout* nativeInstance);
-
-		static void initRuntimeData();
-
-		ScriptGUILayout(GUILayout* layout, ScriptGUIArea* parentArea);
-
-		GUILayout* mLayout;
-		ScriptGUIArea* mParentArea;
-	};
-}

+ 0 - 25
BansheeEngine/Include/BsScriptGUIWidget.h

@@ -1,25 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsScriptObject.h"
-#include "BsGUIWidget.h"
-
-namespace BansheeEngine
-{
-	class BS_EXPORT ScriptGUIWidget : public ScriptObject<ScriptGUIWidget>
-	{
-	public:
-		static void initMetaData();
-
-		static ScriptGUIWidget* create(const CM::HSceneObject& sceneObject);
-	private:
-		static void internal_createInstance(MonoObject* instance, CM::SceneObject* sceneObject);
-		static void internal_destroyInstance(ScriptGUIWidget* nativeInstance);
-
-		static void initRuntimeData();
-
-		ScriptGUIWidget(const HGUIWidget& widget);
-
-		HGUIWidget mWidget;
-	};
-}

+ 0 - 69
BansheeEngine/Include/BsScriptMacros.h

@@ -1,69 +0,0 @@
-#pragma once
-
-#define CM_SCRIPT_GETSET_VALUE(ParentType, Type, Name, Field)									\
-	static void internal_Get##Name##(##ParentType##* nativeInstance, Type##* value)				\
-	{																							\
-		*value = nativeInstance->##Field;														\
-	}																							\
-																								\
-	static void internal_Set##Name##(##ParentType##* nativeInstance, Type value)				\
-	{																							\
-		nativeInstance->##Field = value;															\
-	}																							\
-
-#define CM_SCRIPT_GETSET_VALUE_REF(ParentType, Type, Name, Field)								\
-	static void internal_Get##Name##(##ParentType##* nativeInstance, Type##* value)				\
-	{																							\
-		*value = nativeInstance->##Field;														\
-	}																							\
-																								\
-	static void internal_Set##Name##(##ParentType##* nativeInstance, Type##* value)				\
-	{																							\
-		nativeInstance->##Field = *value;														\
-	}																							\
-
-#define CM_SCRIPT_GETSET_OBJECT(ParentType, Type, Name, FieldNative, FieldManaged)									\
-	static void internal_Get##Name##(##ParentType##* nativeInstance, MonoObject** value)							\
-	{																												\
-		throwIfInstancesDontMatch(nativeInstance->##FieldManaged##, &nativeInstance->##FieldNative##);				\
-																													\
-		if(nativeInstance->##FieldManaged != nullptr)																\
-		{																											\
-			*value = nativeInstance->##FieldManaged##->getManagedInstance();											\
-			return;																									\
-		}																											\
-																													\
-		*value = nullptr;																							\
-	}																												\
-																													\
-	static void internal_Set##Name##(##ParentType##* nativeInstance, MonoObject* value)								\
-	{																												\
-		Type##* nativeValue = Type##::toNative(value);																\
-		nativeInstance->##FieldNative = nativeValue->getInternalValue();												\
-		nativeInstance->##FieldManaged = nativeValue;																\
-	}
-
-#define CM_SCRIPT_GETSET_OBJECT_SHRDPTR(ParentType, Type, Name, FieldNative, FieldManaged)							\
-	static void internal_Get##Name##(##ParentType##* nativeInstance, MonoObject** value)							\
-	{																												\
-		throwIfInstancesDontMatch(nativeInstance->##FieldManaged##, nativeInstance->##FieldNative##.get());			\
-																													\
-		if(nativeInstance->##FieldManaged != nullptr)																\
-		{																											\
-			*value = nativeInstance->##FieldManaged##->getManagedInstance();											\
-			return;																									\
-		}																											\
-																													\
-		*value = nullptr;																							\
-	}																												\
-																													\
-	static void internal_Set##Name##(##ParentType##* nativeInstance, MonoObject* value)								\
-	{																												\
-		Type##* nativeValue = Type##::toNative(value);																\
-		nativeInstance->##FieldNative = nativeValue->getInternalValue();												\
-		nativeInstance->##FieldManaged = nativeValue;																\
-	}
-
-#define CM_SCRIPT_SETGET_META(Type, Name)																			\
-	metaData.scriptClass->addInternalCall("Internal_Get" #Name, &##Type##::internal_Get##Name##);					\
-	metaData.scriptClass->addInternalCall("Internal_Set" #Name, &##Type##::internal_Set##Name##);

+ 0 - 19
BansheeEngine/Include/BsScriptMeta.h

@@ -1,19 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-
-namespace BansheeEngine
-{
-	struct BS_EXPORT ScriptMeta
-	{
-		ScriptMeta();
-		ScriptMeta(const CM::String& assembly, const CM::String& ns, const CM::String& name, std::function<void()> initCallback);
-
-		CM::String ns;
-		CM::String name;
-		CM::String assembly;
-		std::function<void()> initCallback;
-		ScriptClass* scriptClass;							
-		ScriptField* thisPtrField;	
-	};
-}

+ 0 - 95
BansheeEngine/Include/BsScriptObject.h

@@ -1,95 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsScriptMeta.h"
-#include "BsScriptField.h"
-#include "CmException.h"
-#include <mono/jit/jit.h>
-
-namespace BansheeEngine
-{
-	template <class Type>
-	struct InitScriptObjectOnStart
-	{
-	public:
-		InitScriptObjectOnStart()
-		{
-			Type::initMetaData();
-		}
-
-		void makeSureIAmInstantiated() { }
-	};
-
-	/**
-	 * @brief	 Base class for objects that can be extended using Mono scripting
-	 */
-	template <class Type>
-	class ScriptObject
-	{
-	public:
-		ScriptObject()
-			:mManagedInstance(nullptr)
-		{	
-			// Compiler will only generate code for stuff that is directly used, including static data members,
-			// so we fool it here like we're using the class directly. Otherwise compiler won't generate the code for the member
-			// and our type won't get initialized on start (Actual behavior is a bit more random)
-			initOnStart.makeSureIAmInstantiated();
-		}
-
-		virtual ~ScriptObject() 
-		{
-			if(mManagedInstance != nullptr)
-				CM_EXCEPT(InvalidStateException, "Script object is being destroyed without its instance previously being released.");
-		}
-
-		MonoObject* getManagedInstance() const { return mManagedInstance; }
-		virtual void* getNativeRaw() const { return nullptr; }
-
-		static Type* toNative(MonoObject* managedInstance)
-		{
-			return reinterpret_cast<Type*>(metaData.thisPtrField->getValue(managedInstance));
-		}
-
-	protected:
-		static ScriptMeta metaData;
-
-		MonoObject* mManagedInstance;
-
-		void createInstance(MonoObject* instance)
-		{
-			if(mManagedInstance != nullptr)
-				CM_EXCEPT(InvalidStateException, "Trying to instantiate an already instantiated script object.");
-
-			mManagedInstance = instance;
-		}
-
-		void destroyInstance()
-		{
-			if(mManagedInstance == nullptr)
-				return;
-
-			mManagedInstance = nullptr;
-		}
-
-		template <class Type2>
-		static void throwIfInstancesDontMatch(ScriptObject<Type2>* lhs, void* rhs)
-		{
-#if CM_DEBUG_MODE
-			if((lhs == nullptr && rhs != nullptr) || (rhs == nullptr && lhs != nullptr) || lhs->getNativeRaw() != rhs)
-			{
-				CM_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> initOnStart;
-	};
-
-	template <typename Type>
-	InitScriptObjectOnStart<Type> ScriptObject<Type>::initOnStart;
-
-	template <typename Type>
-	ScriptMeta ScriptObject<Type>::metaData;
-}

+ 0 - 25
BansheeEngine/Include/BsScriptSpriteTexture.h

@@ -1,25 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsScriptObject.h"
-
-namespace BansheeEngine
-{
-	class BS_EXPORT ScriptSpriteTexture : public ScriptObject<ScriptSpriteTexture>
-	{
-	public:
-		static void initMetaData();
-
-		const SpriteTexturePtr& getInternalValue() const { return mTexture; }
-
-	private:
-		static void internal_createInstance(MonoObject* instance);
-		static void internal_destroyInstance(ScriptSpriteTexture* nativeInstance);
-
-		static void initRuntimeData();
-
-		ScriptSpriteTexture(const SpriteTexturePtr& texture);
-
-		SpriteTexturePtr mTexture;
-	};
-}

+ 0 - 26
BansheeEngine/Include/BsScriptTexture2D.h

@@ -1,26 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-#include "BsScriptObject.h"
-#include "CmTexture.h"
-
-namespace BansheeEngine
-{
-	class BS_EXPORT ScriptTexture2D : public ScriptObject<ScriptTexture2D>
-	{
-	public:
-		static void initMetaData();
-
-		void* getNativeRaw() const { return mTexture.get(); }
-
-	private:
-		static void internal_createInstance(MonoObject* instance, CM::UINT32 format, CM::UINT32 width, CM::UINT32 height, bool hasMipmaps, bool gammaCorrection);
-		static void internal_destroyInstance(ScriptTexture2D* nativeInstance);
-
-		static void initRuntimeData();
-
-		ScriptTexture2D(const CM::HTexture& texture);
-
-		CM::HTexture mTexture;
-	};
-}

+ 0 - 23
BansheeEngine/Include/BsScriptUtil.h

@@ -1,23 +0,0 @@
-#pragma once
-
-#include "BsPrerequisites.h"
-#include <mono/jit/jit.h>
-
-namespace BansheeEngine
-{
-	class BS_EXPORT ScriptUtil
-	{
-	public:
-		static CM::WString monoToWString(MonoString* str)
-		{
-			int len = mono_string_length(str);
-			mono_unichar2* monoChars = mono_string_chars(str);
-
-			CM::WString ret(len, '0');
-			for(int i = 0; i < len; i++)
-				ret[i] = monoChars[i];
-
-			return ret;
-		}
-	};
-}

+ 0 - 26
BansheeEngine/Source/BsEngineAssembly.cpp

@@ -1,26 +0,0 @@
-#include "BsEngineAssembly.h"
-#include "BsScriptManager.h"
-
-using namespace CamelotFramework;
-
-namespace BansheeEngine
-{
-	const CM::String EngineAssembly::ENGINE_ASSEMBLY_PATH = "..\\..\\Assemblies\\MBansheeEngine.dll";
-	const CM::String EngineAssembly::ENGINE_ASSEMBLY_NAME = "MBansheeEngine";
-	const CM::String EngineAssembly::ASSEMBLY_ENTRY_POINT = "Program::Main";
-
-	EngineAssembly::EngineAssembly()
-	{
-		mAssembly = &ScriptManager::instance().loadAssembly(ENGINE_ASSEMBLY_PATH, ENGINE_ASSEMBLY_NAME, ASSEMBLY_ENTRY_POINT);
-	}
-
-	EngineAssembly::~EngineAssembly()
-	{
-		ScriptManager::instance().unloadAssembly(*mAssembly);
-	}
-
-	ScriptAssembly& gEngineAssembly()
-	{
-		return EngineAssembly::instance().getAssembly();
-	}
-}

+ 0 - 129
BansheeEngine/Source/BsScriptAssembly.cpp

@@ -1,129 +0,0 @@
-#include "BsScriptAssembly.h"
-#include "BsScriptClass.h"
-#include "BsScriptManager.h"
-#include "CmUtil.h"
-#include "CmException.h"
-
-#include <mono/metadata/debug-helpers.h>
-
-using namespace CamelotFramework;
-
-namespace BansheeEngine
-{
-	inline size_t ScriptAssembly::ClassId::Hash::operator()(const ScriptAssembly::ClassId& v) const
-	{
-		size_t seed = 0;
-		hash_combine(seed, v.namespaceName);
-		hash_combine(seed, v.name);
-		return seed;
-	}
-
-	inline bool ScriptAssembly::ClassId::Equals::operator()(const ScriptAssembly::ClassId& a, const ScriptAssembly::ClassId& b) const
-	{
-		return a.name == b.name && a.namespaceName == b.namespaceName;
-	}
-
-	ScriptAssembly::ClassId::ClassId(const String& namespaceName, String name)
-		:namespaceName(namespaceName), name(name)
-	{
-
-	}
-
-	ScriptAssembly::ScriptAssembly()
-		:mIsLoaded(false), mMonoImage(nullptr), mMonoAssembly(nullptr), mDomain(nullptr)
-	{
-
-	}
-
-	ScriptAssembly::~ScriptAssembly()
-	{
-		unload();
-
-		if(mDomain != nullptr)
-		{
-			mono_jit_cleanup(mDomain);
-			mDomain = nullptr;
-		}
-	}
-
-	void ScriptAssembly::load(const CM::String& path, const CM::String& name)
-	{
-		if(mDomain == nullptr)
-		{
-			mDomain = mono_jit_init (path.c_str());
-			if(mDomain == nullptr)
-			{
-				CM_EXCEPT(InternalErrorException, "Cannot initialize Mono runtime.");
-			}
-		}
-
-		MonoAssembly* monoAssembly = mono_domain_assembly_open (mDomain, path.c_str());
-		if(monoAssembly == nullptr)
-		{
-			CM_EXCEPT(InvalidParametersException, "Cannot load Mono assembly: " + path);
-		}
-
-		mName = name;
-		mMonoAssembly = monoAssembly;
-		mMonoImage = mono_assembly_get_image(mMonoAssembly);
-		if(mMonoImage == nullptr)
-		{
-			CM_EXCEPT(InvalidParametersException, "Cannot get script assembly image.");
-		}
-
-		mIsLoaded = true;
-	}
-
-	void ScriptAssembly::unload()
-	{
-		if(!mIsLoaded)
-			return;
-
-		for(auto& entry : mClasses)
-			cm_delete(entry.second);
-
-		mClasses.clear();
-
-		if(mMonoImage != nullptr)
-		{
-			mono_image_close(mMonoImage);
-			mMonoImage = nullptr;
-		}
-
-		mIsLoaded = false;
-		mMonoAssembly = nullptr;
-	}
-
-	void ScriptAssembly::initialize(const CM::String& entryPoint)
-	{
-		MonoMethodDesc* methodDesc = mono_method_desc_new(entryPoint.c_str(), false);
-		MonoMethod* entry = mono_method_desc_search_in_image(methodDesc, mMonoImage);
-
-		if(entry != nullptr)
-			mono_runtime_invoke(entry, nullptr, nullptr, nullptr);
-	}
-
-	ScriptClass& ScriptAssembly::getClass(const String& namespaceName, const String& name)
-	{
-		if(!mIsLoaded)
-			CM_EXCEPT(InvalidStateException, "Trying to use an unloaded assembly.");
-
-		ClassId classId(namespaceName, name);
-		auto iterFind = mClasses.find(classId);
-
-		if(iterFind != mClasses.end())
-			return *iterFind->second;
-
-		MonoClass* monoClass = mono_class_from_name(mMonoImage, namespaceName.c_str(), name.c_str());
-		if(monoClass == nullptr)
-		{
-			CM_EXCEPT(InvalidParametersException, "Cannot get Mono class: " + namespaceName + "." + name);
-		}
-
-		String fullClassName = namespaceName + "." + name;
-		ScriptClass* newClass = new (cm_alloc<ScriptClass>()) ScriptClass(fullClassName, monoClass, this);
-		mClasses[classId] = newClass;
-
-		return *newClass;
-	}
-}

+ 0 - 26
BansheeEngine/Source/BsScriptComponent.cpp

@@ -1,26 +0,0 @@
-#include "BsScriptComponent.h"
-#include "CmException.h"
-
-using namespace CamelotFramework;
-
-namespace BansheeEngine
-{
-	ScriptComponent::ScriptComponent(const CM::HSceneObject& parent, MonoObject* managedInstance)
-		:Component(parent), mManagedInstance(managedInstance), mUpdateThunk(nullptr)
-	{
-		MonoClass* monoClass = mono_object_get_class(mManagedInstance);
-
-		if(monoClass == nullptr)
-			CM_EXCEPT(InternalErrorException, "Cannot retrieve class from MonoObject.");
-
-		MonoMethod* updateMethod = mono_class_get_method_from_name(monoClass, "Update", 0);
-		if(updateMethod != nullptr)
-			mUpdateThunk = (void(*)())mono_method_get_unmanaged_thunk(updateMethod);
-	}
-
-	void ScriptComponent::update()
-	{
-		if(mUpdateThunk != nullptr)
-			mUpdateThunk();
-	}
-}

+ 0 - 48
BansheeEngine/Source/BsScriptFont.cpp

@@ -1,48 +0,0 @@
-#include "BsScriptFont.h"
-#include "BsScriptMeta.h"
-#include "BsScriptField.h"
-#include "BsScriptClass.h"
-#include "BsScriptManager.h"
-#include "BsSpriteTexture.h"
-
-using namespace CamelotFramework;
-
-namespace BansheeEngine
-{
-	ScriptFont::ScriptFont(const CM::HFont& font)
-		:mFont(font)
-	{
-
-	}
-
-	void ScriptFont::initMetaData()
-	{
-		metaData = ScriptMeta("MBansheeEngine", "BansheeEngine", "Font", &ScriptFont::initRuntimeData);
-
-		ScriptManager::registerScriptType(&metaData);
-	}
-
-	void* ScriptFont::getNativeRaw() const
-	{
-		return (void*)mFont.get();
-	}
-
-	void ScriptFont::initRuntimeData()
-	{
-		metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptFont::internal_destroyInstance);
-	}
-
-	void ScriptFont::internal_createInstanceExternal(MonoObject* instance, const CM::HFont& font)
-	{
-		ScriptFont* nativeInstance = new (cm_alloc<ScriptFont>()) ScriptFont(font);
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptFont::internal_destroyInstance(ScriptFont* nativeInstance)
-	{
-		nativeInstance->destroyInstance();
-		cm_delete(nativeInstance);
-	}
-}

+ 0 - 94
BansheeEngine/Source/BsScriptGUIArea.cpp

@@ -1,94 +0,0 @@
-#include "BsScriptGUIArea.h"
-#include "BsScriptMeta.h"
-#include "BsScriptField.h"
-#include "BsScriptClass.h"
-#include "BsScriptManager.h"
-#include "BsScriptGUIArea.h"
-#include "BsGUIArea.h"
-#include "BsGUILayout.h"
-#include "BsScriptGUIBase.h"
-
-using namespace CamelotFramework;
-
-namespace BansheeEngine
-{
-	ScriptGUIArea::ScriptGUIArea(GUIArea* area, ScriptGUIBase* parentGUI)
-		:mArea(area), mParentGUI(parentGUI)
-	{
-
-	}
-
-	void ScriptGUIArea::initMetaData()
-	{
-		metaData = ScriptMeta("MBansheeEngine", "BansheeEngine", "GUIBase", &ScriptGUIArea::initRuntimeData);
-
-		ScriptManager::registerScriptType(&metaData);
-	}
-
-	void ScriptGUIArea::initRuntimeData()
-	{
-		metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptGUIArea::internal_createInstance);
-		metaData.scriptClass->addInternalCall("Internal_CreateInstanceResizableX", &ScriptGUIArea::internal_createInstanceResizeableX);
-		metaData.scriptClass->addInternalCall("Internal_CreateInstanceResizableY", &ScriptGUIArea::internal_createInstanceResizeableY);
-		metaData.scriptClass->addInternalCall("Internal_CreateInstanceResizableXY", &ScriptGUIArea::internal_createInstanceResizeableXY);
-		metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptGUIArea::internal_destroyInstance);
-	}
-
-	GUIWidget& ScriptGUIArea::getParentWidget() const 
-	{ 
-		return mParentGUI->getWidget(); 
-	}
-
-	void ScriptGUIArea::internal_createInstance(MonoObject* instance, MonoObject* parentGUI, CM::INT32 x, CM::INT32 y, CM::UINT32 width, CM::UINT32 height, CM::UINT16 depth)
-	{
-		ScriptGUIBase* scriptGUIBase = ScriptGUIBase::toNative(parentGUI);
-		GUIArea* nativeArea = GUIArea::create(scriptGUIBase->getWidget(), x, y, width, height, depth);
-
-		ScriptGUIArea* nativeInstance = new (cm_alloc<ScriptGUIArea>()) ScriptGUIArea(nativeArea, scriptGUIBase);
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptGUIArea::internal_createInstanceResizeableX(MonoObject* instance, MonoObject* parentGUI, CM::UINT32 offsetLeft, CM::UINT32 offsetRight, 
-		CM::UINT32 offsetTop, CM::UINT32 height, CM::UINT16 depth)
-	{
-		ScriptGUIBase* scriptGUIBase = ScriptGUIBase::toNative(parentGUI);
-		GUIArea* nativeArea = GUIArea::createStretchedX(scriptGUIBase->getWidget(), offsetLeft, offsetRight, offsetTop, height, depth);
-		
-		ScriptGUIArea* nativeInstance = new (cm_alloc<ScriptGUIArea>()) ScriptGUIArea(nativeArea, scriptGUIBase);
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptGUIArea::internal_createInstanceResizeableY(MonoObject* instance, MonoObject* parentGUI, CM::UINT32 offsetTop, 
-		CM::UINT32 offsetBottom, CM::UINT32 offsetLeft, CM::UINT32 width, CM::UINT16 depth)
-	{
-		ScriptGUIBase* scriptGUIBase = ScriptGUIBase::toNative(parentGUI);
-		GUIArea* nativeArea = GUIArea::createStretchedY(scriptGUIBase->getWidget(), offsetTop, offsetBottom, offsetLeft, width, depth);
-
-		ScriptGUIArea* nativeInstance = new (cm_alloc<ScriptGUIArea>()) ScriptGUIArea(nativeArea, scriptGUIBase);
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptGUIArea::internal_createInstanceResizeableXY(MonoObject* instance, MonoObject* parentGUI, CM::UINT32 offsetLeft, 
-		CM::UINT32 offsetRight, CM::UINT32 offsetTop, CM::UINT32 offsetBottom, CM::UINT16 depth)
-	{
-		ScriptGUIBase* scriptGUIBase = ScriptGUIBase::toNative(parentGUI);
-		GUIArea* nativeArea = GUIArea::createStretchedXY(scriptGUIBase->getWidget(), offsetLeft, offsetRight, offsetTop, offsetBottom, depth);
-
-		ScriptGUIArea* nativeInstance = new (cm_alloc<ScriptGUIArea>()) ScriptGUIArea(nativeArea, scriptGUIBase);
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptGUIArea::internal_destroyInstance(ScriptGUIArea* nativeInstance)
-	{
-		nativeInstance->destroyInstance();
-		cm_delete(nativeInstance);
-	}
-}

+ 0 - 48
BansheeEngine/Source/BsScriptGUIBase.cpp

@@ -1,48 +0,0 @@
-#include "BsScriptGUIBase.h"
-#include "BsScriptMeta.h"
-#include "BsScriptField.h"
-#include "BsScriptClass.h"
-#include "BsScriptManager.h"
-#include "BsScriptGUIArea.h"
-#include "BsGUIArea.h"
-#include "BsGUILayout.h"
-
-using namespace CamelotFramework;
-
-namespace BansheeEngine
-{
-	ScriptGUIBase::ScriptGUIBase(GUIWidget& widget)
-		:mWidget(widget)
-	{
-
-	}
-
-	void ScriptGUIBase::initMetaData()
-	{
-		metaData = ScriptMeta("MBansheeEngine", "BansheeEngine", "GUIBase", &ScriptGUIBase::initRuntimeData);
-
-		ScriptManager::registerScriptType(&metaData);
-	}
-	void ScriptGUIBase::initRuntimeData()
-	{
-		metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptGUIBase::internal_createInstance);
-		metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptGUIBase::internal_destroyInstance);
-	}
-
-	void ScriptGUIBase::internal_createInstance(MonoObject* instance)
-	{
-		//ScriptGUIArea* scriptArea = ScriptGUIArea::toNative(parentArea);
-		//GUIArea* nativeArea = scriptArea->getInternalValue();
-
-		//ScriptGUILayout* nativeInstance = new (cm_alloc<ScriptGUILayout>()) ScriptGUILayout(nativeArea->getLayout(), scriptArea);
-		//nativeInstance->createInstance(instance);
-
-		//metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptGUIBase::internal_destroyInstance(ScriptGUIBase* nativeInstance)
-	{
-		nativeInstance->destroyInstance();
-		cm_delete(nativeInstance);
-	}
-}

+ 0 - 60
BansheeEngine/Source/BsScriptGUIElementStateStyle.cpp

@@ -1,60 +0,0 @@
-#include "BsScriptGUIElementStateStyle.h"
-#include "BsScriptMeta.h"
-#include "BsScriptField.h"
-#include "BsScriptClass.h"
-#include "BsScriptManager.h"
-#include "BsScriptSpriteTexture.h"
-#include "CmException.h"
-#include "BsGUIElementStyle.h"
-
-using namespace CamelotFramework;
-
-namespace BansheeEngine
-{
-	ScriptGUIElementStateStyle::ScriptGUIElementStateStyle()
-		:mElementStateStyle(cm_new<GUIElementStyle::GUIElementStateStyle>()), mSpriteTexture(nullptr), mOwnsStyle(true)
-	{
-
-	}
-
-	ScriptGUIElementStateStyle::ScriptGUIElementStateStyle(GUIElementStyle::GUIElementStateStyle* externalStyle)
-		: mElementStateStyle(externalStyle), mSpriteTexture(nullptr), mOwnsStyle(false)
-	{
-
-	}
-
-	ScriptGUIElementStateStyle::~ScriptGUIElementStateStyle()
-	{
-		if(mOwnsStyle)
-			cm_delete(mElementStateStyle);
-	}
-
-	void ScriptGUIElementStateStyle::initMetaData()
-	{
-		metaData = ScriptMeta("MBansheeEngine", "BansheeEngine", "GUIElementStateStyle", &ScriptGUIElementStateStyle::initRuntimeData);
-
-		ScriptManager::registerScriptType(&metaData);
-	}
-
-	void ScriptGUIElementStateStyle::internal_createInstance(MonoObject* instance)
-	{
-		ScriptGUIElementStateStyle* nativeInstance = new (cm_alloc<ScriptGUIElementStateStyle>()) ScriptGUIElementStateStyle();
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptGUIElementStateStyle::internal_createInstanceExternal(MonoObject* instance, GUIElementStyle::GUIElementStateStyle* externalStyle)
-	{
-		ScriptGUIElementStateStyle* nativeInstance = new (cm_alloc<ScriptGUIElementStateStyle>()) ScriptGUIElementStateStyle(externalStyle);
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptGUIElementStateStyle::internal_destroyInstance(ScriptGUIElementStateStyle* nativeInstance)
-	{
-		nativeInstance->destroyInstance();
-		cm_delete(nativeInstance);
-	}
-}

+ 0 - 71
BansheeEngine/Source/BsScriptGUIElementStyle.cpp

@@ -1,71 +0,0 @@
-#include "BsScriptGUIElementStyle.h"
-#include "BsScriptMeta.h"
-#include "BsScriptField.h"
-#include "BsScriptClass.h"
-#include "BsScriptManager.h"
-#include "BsScriptFont.h"
-#include "CmException.h"
-#include "BsGUIElementStyle.h"
-#include "BsScriptGUIElementStateStyle.h"
-
-using namespace CamelotFramework;
-
-namespace BansheeEngine
-{
-	ScriptGUIElementStyle::ScriptGUIElementStyle(const String& name)
-		:mName(name), mElementStyle(cm_new<GUIElementStyle>()), mFont(nullptr), mOwnsStyle(true), mNormal(nullptr), mHover(nullptr),
-		mActive(nullptr), mFocused(nullptr), mNormalOn(nullptr), mHoverOn(nullptr), mActiveOn(nullptr), mFocusedOn(nullptr)
-	{
-
-	}
-
-	ScriptGUIElementStyle::ScriptGUIElementStyle(const String& name, GUIElementStyle* externalStyle)
-		:mName(name), mElementStyle(externalStyle), mFont(nullptr), mOwnsStyle(false), mNormal(nullptr), mHover(nullptr),
-		mActive(nullptr), mFocused(nullptr), mNormalOn(nullptr), mHoverOn(nullptr), mActiveOn(nullptr), mFocusedOn(nullptr)
-	{
-
-	}
-
-	ScriptGUIElementStyle::~ScriptGUIElementStyle()
-	{
-		if(mOwnsStyle)
-			cm_delete(mElementStyle);
-	}
-
-	void ScriptGUIElementStyle::initMetaData()
-	{
-		metaData = ScriptMeta("MBansheeEngine", "BansheeEngine", "GUIElementStyle", &ScriptGUIElementStyle::initRuntimeData);
-
-		ScriptManager::registerScriptType(&metaData);
-	}
-
-	void ScriptGUIElementStyle::internal_createInstance(MonoObject* instance, MonoString* name)
-	{
-		char* nativeName = mono_string_to_utf8(name);
-		String styleName(nativeName);
-		free(nativeName);
-
-		ScriptGUIElementStyle* nativeInstance = new (cm_alloc<ScriptGUIElementStyle>()) ScriptGUIElementStyle(styleName);
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptGUIElementStyle::internal_createInstanceExternal(MonoObject* instance, MonoString* name, GUIElementStyle* externalStyle)
-	{
-		char* nativeName = mono_string_to_utf8(name);
-		String styleName(nativeName);
-		free(nativeName);
-
-		ScriptGUIElementStyle* nativeInstance = new (cm_alloc<ScriptGUIElementStyle>()) ScriptGUIElementStyle(styleName, externalStyle);
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptGUIElementStyle::internal_destroyInstance(ScriptGUIElementStyle* nativeInstance)
-	{
-		nativeInstance->destroyInstance();
-		cm_delete(nativeInstance);
-	}
-}

+ 0 - 67
BansheeEngine/Source/BsScriptGUILabel.cpp

@@ -1,67 +0,0 @@
-#include "BsScriptGUILabel.h"
-#include "BsScriptMeta.h"
-#include "BsScriptField.h"
-#include "BsScriptClass.h"
-#include "BsScriptManager.h"
-#include "BsSpriteTexture.h"
-#include "BsScriptUtil.h"
-#include "BsGUILayout.h"
-#include "BsGUILabel.h"
-#include "BsGUIOptions.h"
-#include "BsScriptGUIElementStyle.h"
-#include "BsScriptGUILayout.h"
-#include "BsScriptGUIArea.h"
-
-using namespace CamelotFramework;
-
-namespace BansheeEngine
-{
-	ScriptGUILabel::ScriptGUILabel(GUILabel* label)
-		:mLabel(label)
-	{
-
-	}
-
-	void ScriptGUILabel::initMetaData()
-	{
-		metaData = ScriptMeta("MBansheeEngine", "BansheeEngine", "GUILabel", &ScriptGUILabel::initRuntimeData);
-
-		ScriptManager::registerScriptType(&metaData);
-	}
-	void ScriptGUILabel::initRuntimeData()
-	{
-		metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptGUILabel::internal_createInstance);
-		metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptGUILabel::internal_destroyInstance);
-	}
-
-	void ScriptGUILabel::internal_createInstance(MonoObject* instance, MonoObject* parentLayout, MonoString* label, MonoObject* style, MonoArray* guiOptions)
-	{
-		ScriptGUILayout* scriptLayout = ScriptGUILayout::toNative(parentLayout);
-		HString nativeLabel(ScriptUtil::monoToWString(label));
-		GUIOptions options;
-
-		UINT32 arrayLen = (UINT32)mono_array_length(guiOptions);
-		for(UINT32 i = 0; i < arrayLen; i++)
-			options.addOption(mono_array_get(guiOptions, GUIOption, i));
-
-		GUIElementStyle* elemStyle = nullptr;
-		
-		if(style != nullptr)
-			elemStyle = ScriptGUIElementStyle::toNative(style)->getInternalValue();
-
-		GUILabel* guiLabel = GUILabel::create(scriptLayout->getParentArea()->getParentWidget(), nativeLabel, options, elemStyle); // TODO - Use proper HString
-		GUILayout* nativeLayout = scriptLayout->getInternalValue();
-		nativeLayout->addElement(guiLabel);
-
-		ScriptGUILabel* nativeInstance = new (cm_alloc<ScriptGUILabel>()) ScriptGUILabel(guiLabel);
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptGUILabel::internal_destroyInstance(ScriptGUILabel* nativeInstance)
-	{
-		nativeInstance->destroyInstance();
-		cm_delete(nativeInstance);
-	}
-}

+ 0 - 74
BansheeEngine/Source/BsScriptGUILayout.cpp

@@ -1,74 +0,0 @@
-#include "BsScriptGUILayout.h"
-#include "BsScriptMeta.h"
-#include "BsScriptField.h"
-#include "BsScriptClass.h"
-#include "BsScriptManager.h"
-#include "BsScriptGUIArea.h"
-#include "BsGUIArea.h"
-#include "BsGUILayout.h"
-
-using namespace CamelotFramework;
-
-namespace BansheeEngine
-{
-	ScriptGUILayout::ScriptGUILayout(GUILayout* layout, ScriptGUIArea* parentArea)
-		:mLayout(layout), mParentArea(parentArea)
-	{
-
-	}
-
-	void ScriptGUILayout::initMetaData()
-	{
-		metaData = ScriptMeta("MBansheeEngine", "BansheeEngine", "GUILayout", &ScriptGUILayout::initRuntimeData);
-
-		ScriptManager::registerScriptType(&metaData);
-	}
-	void ScriptGUILayout::initRuntimeData()
-	{
-		metaData.scriptClass->addInternalCall("Internal_CreateInstanceXFromArea", &ScriptGUILayout::internal_createInstanceXFromArea);
-		metaData.scriptClass->addInternalCall("Internal_CreateInstanceXFromLayout", &ScriptGUILayout::internal_createInstanceXFromLayout);
-		metaData.scriptClass->addInternalCall("Internal_CreateInstanceYFromLayout", &ScriptGUILayout::internal_createInstanceYFromLayout);
-		metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptGUILayout::internal_destroyInstance);
-	}
-
-	void ScriptGUILayout::internal_createInstanceXFromArea(MonoObject* instance, MonoObject* parentArea)
-	{
-		ScriptGUIArea* scriptArea = ScriptGUIArea::toNative(parentArea);
-		GUIArea* nativeArea = scriptArea->getInternalValue();
-
-		ScriptGUILayout* nativeInstance = new (cm_alloc<ScriptGUILayout>()) ScriptGUILayout(&nativeArea->getLayout(), scriptArea);
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptGUILayout::internal_createInstanceXFromLayout(MonoObject* instance, MonoObject* parentLayout)
-	{
-		ScriptGUILayout* scriptLayout = ScriptGUILayout::toNative(parentLayout);
-		GUILayout* nativeLayout = scriptLayout->getInternalValue();
-		GUILayout& layout = nativeLayout->addLayoutX();
-
-		ScriptGUILayout* nativeInstance = new (cm_alloc<ScriptGUILayout>()) ScriptGUILayout(&layout, scriptLayout->getParentArea());
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptGUILayout::internal_createInstanceYFromLayout(MonoObject* instance, MonoObject* parentLayout)
-	{
-		ScriptGUILayout* scriptLayout = ScriptGUILayout::toNative(parentLayout);
-		GUILayout* nativeLayout = scriptLayout->getInternalValue();
-		GUILayout& layout = nativeLayout->addLayoutY();
-
-		ScriptGUILayout* nativeInstance = new (cm_alloc<ScriptGUILayout>()) ScriptGUILayout(&layout, scriptLayout->getParentArea());
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptGUILayout::internal_destroyInstance(ScriptGUILayout* nativeInstance)
-	{
-		nativeInstance->destroyInstance();
-		cm_delete(nativeInstance);
-	}
-}

+ 0 - 50
BansheeEngine/Source/BsScriptGUIWidget.cpp

@@ -1,50 +0,0 @@
-#include "BsScriptGUIWidget.h"
-#include "BsScriptMeta.h"
-#include "BsScriptField.h"
-#include "BsScriptClass.h"
-#include "BsScriptManager.h"
-#include "CmSceneObject.h"
-#include "BsGUIWidget.h"
-#include "BsApplication.h"
-#include "BsScriptComponent.h"
-
-using namespace CamelotFramework;
-
-namespace BansheeEngine
-{
-	ScriptGUIWidget::ScriptGUIWidget(const HGUIWidget& widget)
-		:mWidget(widget)
-	{
-
-	}
-
-	void ScriptGUIWidget::initMetaData()
-	{
-		metaData = ScriptMeta("MBansheeEngine", "BansheeEngine", "GUIWidget", &ScriptGUIWidget::initRuntimeData);
-
-		ScriptManager::registerScriptType(&metaData);
-	}
-
-	void ScriptGUIWidget::initRuntimeData()
-	{
-		metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptGUIWidget::internal_createInstance);
-		metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptGUIWidget::internal_destroyInstance);
-	}
-
-	void ScriptGUIWidget::internal_createInstance(MonoObject* instance, SceneObject* sceneObject)
-	{
-		HGUIWidget widget = sceneObject->addComponent<GUIWidget>(gBansheeApp().getPrimaryViewport().get());
-		sceneObject->addComponent<ScriptComponent>(instance);
-
-		ScriptGUIWidget* nativeInstance = new (cm_alloc<ScriptGUIWidget>()) ScriptGUIWidget(widget);
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptGUIWidget::internal_destroyInstance(ScriptGUIWidget* nativeInstance)
-	{
-		nativeInstance->destroyInstance();
-		cm_delete(nativeInstance);
-	}
-}

+ 0 - 20
BansheeEngine/Source/BsScriptMeta.cpp

@@ -1,20 +0,0 @@
-#include "BsScriptMeta.h"
-#include "BsScriptManager.h"
-#include "BsScriptClass.h"
-#include "BsScriptField.h"
-#include "BsEngineAssembly.h"
-
-namespace BansheeEngine
-{
-	ScriptMeta::ScriptMeta()
-		:scriptClass(nullptr), thisPtrField(nullptr)
-	{
-
-	}
-
-	ScriptMeta::ScriptMeta(const CM::String& assembly, const CM::String& ns, const CM::String& name, std::function<void()> initCallback)
-		:assembly(assembly), ns(ns), name(name), initCallback(initCallback)
-	{
-
-	}
-}

+ 0 - 44
BansheeEngine/Source/BsScriptSpriteTexture.cpp

@@ -1,44 +0,0 @@
-#include "BsScriptSpriteTexture.h"
-#include "BsScriptMeta.h"
-#include "BsScriptField.h"
-#include "BsScriptClass.h"
-#include "BsScriptManager.h"
-#include "BsSpriteTexture.h"
-
-using namespace CamelotFramework;
-
-namespace BansheeEngine
-{
-	ScriptSpriteTexture::ScriptSpriteTexture(const SpriteTexturePtr& texture)
-		:mTexture(texture)
-	{
-
-	}
-
-	void ScriptSpriteTexture::initMetaData()
-	{
-		metaData = ScriptMeta("MBansheeEngine", "BansheeEngine", "SpriteTexture", &ScriptSpriteTexture::initRuntimeData);
-
-		ScriptManager::registerScriptType(&metaData);
-	}
-
-	void ScriptSpriteTexture::initRuntimeData()
-	{
-		metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptSpriteTexture::internal_createInstance);
-		metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptSpriteTexture::internal_destroyInstance);
-	}
-
-	void ScriptSpriteTexture::internal_createInstance(MonoObject* instance)
-	{
-		ScriptSpriteTexture* nativeInstance = new (cm_alloc<ScriptSpriteTexture>()) ScriptSpriteTexture(nullptr); // TODO - DUMMY CODE!
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptSpriteTexture::internal_destroyInstance(ScriptSpriteTexture* nativeInstance)
-	{
-		nativeInstance->destroyInstance();
-		cm_delete(nativeInstance);
-	}
-}

+ 0 - 65
BansheeEngine/Source/BsScriptTexture2D.cpp

@@ -1,65 +0,0 @@
-#include "BsScriptTexture2D.h"
-#include "BsScriptMeta.h"
-#include "BsScriptField.h"
-#include "BsScriptClass.h"
-#include "BsScriptManager.h"
-#include "CmTexture.h"
-#include "CmPixelUtil.h"
-#include "CmException.h"
-
-using namespace CamelotFramework;
-
-namespace BansheeEngine
-{
-	ScriptTexture2D::ScriptTexture2D(const CM::HTexture& texture)
-		:mTexture(texture)
-	{
-
-	}
-
-	void ScriptTexture2D::initMetaData()
-	{
-		metaData = ScriptMeta("MBansheeEngine", "BansheeEngine", "Texture2D", &ScriptTexture2D::initRuntimeData);
-
-		ScriptManager::registerScriptType(&metaData);
-	}
-
-	void ScriptTexture2D::initRuntimeData()
-	{
-		metaData.scriptClass->addInternalCall("Internal_CreateInstance", &ScriptTexture2D::internal_createInstance);
-		metaData.scriptClass->addInternalCall("Internal_DestroyInstance", &ScriptTexture2D::internal_destroyInstance);
-	}
-
-	void ScriptTexture2D::internal_createInstance(MonoObject* instance, CM::UINT32 format, CM::UINT32 width, CM::UINT32 height, bool hasMipmaps, bool gammaCorrection)
-	{
-		PixelFormat texFormat = PF_R8G8B8;
-		switch(format)
-		{
-		case 0: // RGB
-			texFormat = PF_R8G8B8;
-			break;
-		case 1: // RGBA
-			texFormat = PF_R8G8B8A8;
-			break;
-		default:
-			CM_EXCEPT(InvalidParametersException, "Unsupported texture format");
-		}
-
-		int numMips = 0;
-		if(hasMipmaps)
-			numMips = PixelUtil::getMaxMipmaps(width, height, 1, texFormat);
-
-		HTexture texture = Texture::create(TEX_TYPE_2D, width, height, numMips, texFormat, TU_STATIC, gammaCorrection);
-
-		ScriptTexture2D* nativeInstance = new (cm_alloc<ScriptTexture2D>()) ScriptTexture2D(texture);
-		nativeInstance->createInstance(instance);
-
-		metaData.thisPtrField->setValue(instance, nativeInstance);
-	}
-
-	void ScriptTexture2D::internal_destroyInstance(ScriptTexture2D* nativeInstance)
-	{
-		nativeInstance->destroyInstance();
-		cm_delete(nativeInstance);
-	}
-}