Marko Pintera 10 anni fa
parent
commit
8dbbf30c09

+ 19 - 3
SBansheeEngine/Include/BsScriptFont.h

@@ -7,23 +7,39 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for Font.
+	 */
 	class BS_SCR_BE_EXPORT ScriptFont : public ScriptObject<ScriptFont, ScriptResourceBase>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "Font")
 
-		HResource getNativeHandle() const { return mFont; }
-		void setNativeHandle(const HResource& resource);
+		/**
+		 * @copydoc	ScriptResourceBase::getNativeHandle
+		 */
+		HResource getNativeHandle() const override { return mFont; }
+
+		/**
+		 * @copydoc	ScriptResourceBase::setNativeHandle
+		 */
+		void setNativeHandle(const HResource& resource) override;
 	private:
 		friend class ScriptResourceManager;
 
 		ScriptFont(MonoObject* instance, const HFont& font);
 
-		void _onManagedInstanceDeleted();
+		/**
+		 * @copydoc	ScriptObjectBase::_onManagedInstanceDeleted
+		 */
+		void _onManagedInstanceDeleted() override;
 
 		HFont mFont;
 	};
 
+	/**
+	 * @brief	Interop class between C++ & CLR for CharRange.
+	 */
 	class BS_SCR_BE_EXPORT ScriptCharRange : public ScriptObject <ScriptCharRange>
 	{
 	public:

+ 23 - 0
SBansheeEngine/Include/BsScriptGameObject.h

@@ -5,22 +5,42 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Base class for all GameObject interop classes.
+	 */
 	class BS_SCR_BE_EXPORT ScriptGameObjectBase : public PersistentScriptObjectBase
 	{
 	public:
 		ScriptGameObjectBase(MonoObject* instance);
 		virtual ~ScriptGameObjectBase() { }
 
+		/**
+		 * @brief	Returns the internal native GameObject handle.
+		 */
 		virtual HGameObject getNativeHandle() const = 0;
+
+		/**
+		 * @brief	Sets the internal native GameObject handle.
+		 */
 		virtual void setNativeHandle(const HGameObject& gameObject) = 0;
 
+		/**
+		 * @copydoc	ScriptObjectBase::beginRefresh
+		 */
 		virtual ScriptObjectBackup beginRefresh() override;
+
+		/**
+		 * @copydoc	ScriptObjectBase::endRefresh
+		 */
 		virtual void endRefresh(const ScriptObjectBackup& backupData) override;
 
 	protected:
 		bool mRefreshInProgress;
 	};
 
+	/**
+	 * @brief	Interop class between C++ & CLR for GameObject.
+	 */
 	class BS_SCR_BE_EXPORT ScriptGameObject : public ScriptObject<ScriptGameObject, ScriptGameObjectBase>
 	{
 	public:
@@ -29,6 +49,9 @@ namespace BansheeEngine
 	private:
 		ScriptGameObject(MonoObject* instance);
 
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
 		static UINT64 internal_getInstanceId(ScriptGameObject* nativeInstance);
 	};
 }

+ 54 - 0
SBansheeEngine/Include/BsScriptGameObjectManager.h

@@ -6,8 +6,16 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Manages all active GameObject interop objects. GameObjects can be created from native
+	 *			code and used in managed code therefore we need to keep a dictionary or all the native
+	 *			objects we have mapped to managed objects.
+	 */
 	class BS_SCR_BE_EXPORT ScriptGameObjectManager : public Module<ScriptGameObjectManager>
 	{
+		/**
+		 * @brief	Contains information about a single interop object containing a game object.
+		 */
 		struct ScriptGameObjectEntry
 		{
 			ScriptGameObjectEntry();
@@ -21,19 +29,65 @@ namespace BansheeEngine
 		ScriptGameObjectManager();
 		~ScriptGameObjectManager();
 
+		/**
+		 * @brief	Attempts to find the interop object for the specified SceneObject. If one cannot be found
+		 *			new one is created and returned.
+		 */
 		ScriptSceneObject* getOrCreateScriptSceneObject(const HSceneObject& sceneObject);
+
+		/**
+		 * @brief	Creates a new interop object for the specified SceneObject. Throws an exception if one
+		 *			already exists.
+		 */
 		ScriptSceneObject* createScriptSceneObject(const HSceneObject& sceneObject);
+
+		/**
+		 * @brief	Connects an existing managed SceneObject instance with the native SceneObject by creating
+		 *			the interop object. Throws an exception if the interop object already exists.
+		 */
 		ScriptSceneObject* createScriptSceneObject(MonoObject* existingInstance, const HSceneObject& sceneObject);
+
+		/**
+		 * @brief	Connects an existing managed Component instance with the native Component by creating
+		 *			the interop object. Throws an exception if the interop object already exists.
+		 */
 		ScriptComponent* createScriptComponent(MonoObject* existingInstance, const GameObjectHandle<ManagedComponent>& component);
 
+		/**
+		 * @brief	Attempts to find the interop object for the specified managed component. 
+		 *			If one cannot be found null is returned.
+		 */
 		ScriptComponent* getScriptComponent(const GameObjectHandle<ManagedComponent>& component) const;
+
+		/**
+		 * @brief	Attempts to find the interop object for a managed component with the specified instance ID. 
+		 *			If one cannot be found null is returned.
+		 */
 		ScriptComponent* getScriptComponent(UINT64 instanceId) const;
+
+		/**
+		 * @brief	Attempts to find the interop object for the specified SceneObject. If one cannot be found
+		 *			null is returned.
+		 */
 		ScriptSceneObject* getScriptSceneObject(const HSceneObject& sceneObject) const;
+
+		/**
+		 * @brief	Attempts to find the interop object for a GameObject with the specified instance ID. 
+		 *			If one cannot be found null is returned.
+		 */
 		ScriptGameObjectBase* getScriptGameObject(UINT64 instanceId) const;
 
+		/**
+		 * @brief	Destroys and unregisters the specified GameObject interop object.
+		 */
 		void destroyScriptGameObject(ScriptGameObjectBase* gameObject);
 
 	private:
+		/**
+		 * @brief	Triggers OnReset methods on all registered managed components.
+		 *
+		 * @note	Usually this happens after an assembly reload.
+		 */
 		void sendComponentResetEvents();
 
 		UnorderedMap<UINT64, ScriptGameObjectEntry> mScriptGameObjects;

+ 13 - 4
SBansheeEngine/Include/BsScriptHString.h

@@ -6,20 +6,29 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for HString.
+	 */
 	class BS_SCR_BE_EXPORT ScriptHString : public ScriptObject<ScriptHString>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "LocString")
 
+		/**
+		 * @brief	Returns the wrapped native HString.
+		 */
 		const HString& getInternalValue() const { return mString; }
 
 	private:
-		static void internal_createInstance(MonoObject* instance, MonoString* identifier, UINT32 tableId);
-		static void internal_setParameter(HString* nativeInstance, UINT32 idx, MonoString* value);
-		static void internal_getValue(HString* nativeInstance, MonoString** value);
-
 		ScriptHString(MonoObject* instance, const HString& string);
 
 		HString mString;
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
+		static void internal_createInstance(MonoObject* instance, MonoString* identifier, UINT32 tableId);
+		static void internal_setParameter(HString* nativeInstance, UINT32 idx, MonoString* value);
+		static void internal_getValue(HString* nativeInstance, MonoString** value);
 	};
 }

+ 49 - 10
SBansheeEngine/Include/BsScriptInput.h

@@ -6,23 +6,72 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for Input.
+	 */
 	class BS_SCR_BE_EXPORT ScriptInput : public ScriptObject<ScriptInput>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "Input")
 
+		/**
+		 * @brief	Registers internal callbacks. Must be called on scripting system load.
+		 */
 		static void startUp();
+
+		/**
+		 * @brief	Unregisters internal callbacks. Must be called on scripting system shutdown.
+		 */
 		static void shutDown();
 	private:
+		ScriptInput(MonoObject* instance);
+
+		/**
+		 * @brief	Triggered when the specified button is pressed.
+		 */
 		static void onButtonDown(const ButtonEvent& ev);
+
+		/**
+		 * @brief	Triggered when the specified button is released.
+		 */
 		static void onButtonUp(const ButtonEvent& ev);
+
+		/**
+		 * @brief	Triggered when the specified character is entered.
+		 */
 		static void onCharInput(const TextInputEvent& ev);
+
+		/**
+		 * @brief	Triggered when the pointer is moved.
+		 */
 		static void onPointerMoved(const PointerEvent& ev);
 
+		/**
+		 * @brief	Triggered when a pointer button is pressed.
+		 */
 		static void onPointerPressed(const PointerEvent& ev);
+
+		/**
+		 * @brief	Triggered when a pointer button is released.
+		 */
 		static void onPointerReleased(const PointerEvent& ev);
+
+		/**
+		 * @brief	Triggered when a pointer button is double-clicked.
+		 */
 		static void onPointerDoubleClick(const PointerEvent& ev);
 
+		static HEvent OnButtonPressedConn;
+		static HEvent OnButtonReleasedConn;
+		static HEvent OnCharInputConn;
+		static HEvent OnPointerPressedConn;
+		static HEvent OnPointerReleasedConn;
+		static HEvent OnPointerMovedConn;
+		static HEvent OnPointerDoubleClickConn;
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
 		static bool internal_isButtonHeld(ButtonCode code, UINT32 deviceIdx);
 		static bool internal_isButtonDown(ButtonCode code, UINT32 deviceIdx);
 		static bool internal_isButtonUp(ButtonCode code, UINT32 deviceIdx);
@@ -46,15 +95,5 @@ namespace BansheeEngine
 		static OnPointerEventThunkDef OnPointerReleasedThunk;
 		static OnPointerEventThunkDef OnPointerMovedThunk;
 		static OnPointerEventThunkDef OnPointerDoubleClickThunk;
-
-		static HEvent OnButtonPressedConn;
-		static HEvent OnButtonReleasedConn;
-		static HEvent OnCharInputConn;
-		static HEvent OnPointerPressedConn;
-		static HEvent OnPointerReleasedConn;
-		static HEvent OnPointerMovedConn;
-		static HEvent OnPointerDoubleClickConn;
-
-		ScriptInput(MonoObject* instance);
 	};
 }

+ 36 - 10
SBansheeEngine/Include/BsScriptInputConfiguration.h

@@ -6,17 +6,45 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for InputConfiguration.
+	 */
 	class BS_SCR_BE_EXPORT ScriptInputConfiguration : public ScriptObject<ScriptInputConfiguration>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "InputConfiguration")
 
+		/**
+		 * @brief	Returns the internal wrapped InputConfiguration object.
+		 */
 		InputConfigurationPtr getInternalValue() const { return mInputConfig; }
 
+		/**
+		 * @brief	Attempts to find a existing interop object for the provided input configuration.
+		 *			Returns null if one cannot be found.
+		 */
 		static ScriptInputConfiguration* getScriptInputConfig(const InputConfigurationPtr& inputConfig);
+
+		/**
+		 * @brief	Creates a new interop object for the provided input configuration. Caller should first
+		 *			call ::getScriptInputConfig to ensure one doesn't already exist.
+		 */
 		static ScriptInputConfiguration* createScriptInputConfig(const InputConfigurationPtr& inputConfig);
 
 	private:
+		ScriptInputConfiguration(MonoObject* instance, const InputConfigurationPtr& inputConfig);
+
+		/**
+		 * @copydoc	ScriptObjectBase::_onManagedInstanceDeleted
+		 */
+		void _onManagedInstanceDeleted() override;
+
+		InputConfigurationPtr mInputConfig;
+		static Map<UINT64, ScriptInputConfiguration*> ScriptInputConfigurations;
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
 		static void internal_CreateInstance(MonoObject* object);
 
 		static void internal_RegisterButton(ScriptInputConfiguration* thisPtr, MonoString* name, ButtonCode buttonCode,
@@ -29,24 +57,22 @@ namespace BansheeEngine
 
 		static void internal_SetRepeatInterval(ScriptInputConfiguration* thisPtr, UINT64 milliseconds);
 		static UINT64 internal_GetRepeatInterval(ScriptInputConfiguration* thisPtr);
-
-		ScriptInputConfiguration(MonoObject* instance, const InputConfigurationPtr& inputConfig);
-
-		void _onManagedInstanceDeleted();
-
-		InputConfigurationPtr mInputConfig;
-
-		static Map<UINT64, ScriptInputConfiguration*> ScriptInputConfigurations;
 	};
 
+	/**
+	 * @brief	Interop class between C++ & CLR for VirtualAxis.
+	 */
 	class BS_SCR_BE_EXPORT ScriptVirtualAxis : public ScriptObject <ScriptVirtualAxis>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "VirtualAxis")
 
 	private:
-		static UINT32 internal_InitVirtualAxis(MonoString* name);
-
 		ScriptVirtualAxis(MonoObject* instance);
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
+		static UINT32 internal_InitVirtualAxis(MonoString* name);
 	};
 }

+ 12 - 3
SBansheeEngine/Include/BsScriptLightInternal.h

@@ -10,17 +10,29 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for LightInternal.
+	 */
 	class BS_SCR_BE_EXPORT ScriptLightInternal : public ScriptObject <ScriptLightInternal>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "LightInternal")
 
+		/**
+		 * @brief	Gets the wrapped native LightInternal object.
+		 */
 		SPtr<LightInternal> getInternal() const { return mLightInternal; }
 
 	private:
 		ScriptLightInternal(MonoObject* managedInstance, const HSceneObject& parentSO);
 		~ScriptLightInternal();
 
+		SPtr<LightInternal> mLightInternal;
+		UINT32 mLastUpdateHash;
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
 		static void internal_create(MonoObject* managedInstance, ScriptSceneObject* parentSO);
 
 		static Vector3 internal_getPosition(ScriptLightInternal* thisPtr);
@@ -54,8 +66,5 @@ namespace BansheeEngine
 
 		static void internal_updateTransform(ScriptLightInternal* thisPtr, ScriptSceneObject* parent);
 		static void internal_onDestroy(ScriptLightInternal* instance);
-
-		SPtr<LightInternal> mLightInternal;
-		UINT32 mLastUpdateHash;
 	};
 }

+ 35 - 7
SBansheeEngine/Include/BsScriptManagedResource.h

@@ -6,6 +6,9 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for ManagedResource.
+	 */
 	class BS_SCR_BE_EXPORT ScriptManagedResource : public ScriptObject<ScriptManagedResource, ScriptResourceBase>
 	{
 	public:
@@ -13,20 +16,45 @@ namespace BansheeEngine
 
 		ScriptManagedResource(MonoObject* instance, const HManagedResource& resource);
 
-		HResource getNativeHandle() const { return mResource; }
-		void setNativeHandle(const HResource& resource);
+		/**
+		 * @copydoc	ScriptResourceBase::getNativeHandle
+		 */
+		HResource getNativeHandle() const override { return mResource; }
+
+		/**
+		 * @copydoc	ScriptResourceBase::setNativeHandle
+		 */
+		void setNativeHandle(const HResource& resource) override;
 	private:
 		friend class ScriptResourceManager;
 
-		static void internal_createInstance(MonoObject* instance);
+		/**
+		 * @copydoc	ScriptObjectBase::beginRefresh
+		 */
+		virtual ScriptObjectBackup beginRefresh() override;
+
+		/**
+		 * @copydoc	ScriptObjectBase::endRefresh
+		 */
+		virtual void endRefresh(const ScriptObjectBackup& backupData) override;
 
-		virtual ScriptObjectBackup beginRefresh();
-		virtual void endRefresh(const ScriptObjectBackup& backupData);
-		virtual MonoObject* _createManagedInstance(bool construct);
-		void _onManagedInstanceDeleted();
+		/**
+		 * @copydoc	ScriptObjectBase::_createManagedInstance
+		 */
+		virtual MonoObject* _createManagedInstance(bool construct) override;
+
+		/**
+		 * @copydoc	ScriptObjectBase::_onManagedInstanceDeleted
+		 */
+		void _onManagedInstanceDeleted() override;
 
 		HManagedResource mResource;
 		String mNamespace;
 		String mType;
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
+		static void internal_createInstance(MonoObject* instance);
 	};
 }

+ 27 - 8
SBansheeEngine/Include/BsScriptMaterial.h

@@ -12,18 +12,43 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Interop class between C++ & CLR for Material.
+	 */
 	class BS_SCR_BE_EXPORT ScriptMaterial : public ScriptObject <ScriptMaterial, ScriptResourceBase>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "Material")
 
-		HResource getNativeHandle() const { return mMaterial; }
-		void setNativeHandle(const HResource& resource);
+		/**
+		 * @copydoc	ScriptResourceBase::getNativeHandle
+		 */
+		HResource getNativeHandle() const override { return mMaterial; }
 
+		/**
+		 * @copydoc	ScriptResourceBase::setNativeHandle
+		 */
+		void setNativeHandle(const HResource& resource) override;
+
+		/**
+		 * @brief	Returns the wrapped native material handle.
+		 */
 		HMaterial getMaterialHandle() const { return mMaterial; }
 	private:
 		friend class ScriptResourceManager;
 
+		ScriptMaterial(MonoObject* instance, const HMaterial& material);
+
+		/**
+		 * @copydoc	ScriptObjectBase::_onManagedInstanceDeleted
+		 */
+		void _onManagedInstanceDeleted() override;
+
+		HMaterial mMaterial;
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
 		static void internal_CreateInstance(MonoObject* instance, ScriptShader* shader);
 
 		static MonoObject* internal_GetShader(ScriptMaterial* nativeInstance);
@@ -50,11 +75,5 @@ namespace BansheeEngine
 		static MonoObject* internal_GetTexture2D(ScriptMaterial* nativeInstance, MonoString* name);
 		static MonoObject* internal_GetTexture3D(ScriptMaterial* nativeInstance, MonoString* name);
 		static MonoObject* internal_GetTextureCube(ScriptMaterial* nativeInstance, MonoString* name);
-
-		ScriptMaterial(MonoObject* instance, const HMaterial& material);
-
-		void _onManagedInstanceDeleted();
-
-		HMaterial mMaterial;
 	};
 }

+ 64 - 10
SBansheeEngine/Include/BsScriptMesh.h

@@ -7,6 +7,11 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Possible mesh toplogy values. 
+	 *
+	 * @note	Must match C# enum MeshTopology.
+	 */
 	enum class MeshTopology
 	{
 		PointList = 1,
@@ -17,6 +22,9 @@ namespace BansheeEngine
 		TriangleFan = 6
 	};
 
+	/**
+	 * @brief	Contains data about a portion of a mesh inside MeshData.
+	 */
 	struct BS_SCR_BE_EXPORT SubMeshData
 	{
 		UINT32 indexOffset;
@@ -24,32 +32,86 @@ namespace BansheeEngine
 		MeshTopology topology;
 	};
 
+	/**
+	 * @brief	Interop class between C++ & CLR for SubMesh.
+	 */
 	class BS_SCR_BE_EXPORT ScriptSubMesh : public ScriptObject < ScriptSubMesh >
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "SubMesh")
 
+		/**
+		 * @brief	Unboxes a boxed managed SubMesh struct and returns
+		 *			the native version of the structure.
+		 */
 		static SubMeshData unbox(MonoObject* obj);
+
+		/**
+		 * @brief	Boxes a native SubMesh struct and returns
+		 *			a managed object containing it.
+		 */
 		static MonoObject* box(const SubMeshData& value);
 
 	private:
 		ScriptSubMesh(MonoObject* instance);
 	};
 
+	/**
+	 * @brief	Interop class between C++ & CLR for Mesh.
+	 */
 	class BS_SCR_BE_EXPORT ScriptMesh : public ScriptObject <ScriptMesh, ScriptResourceBase>
 	{
 	public:
 		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "Mesh")
 
-		HResource getNativeHandle() const { return mMesh; }
-		void setNativeHandle(const HResource& resource);
+		/**
+		 * @copydoc	ScriptResourceBase::getNativeHandle
+		 */
+		HResource getNativeHandle() const override { return mMesh; }
+
+		/**
+		 * @copydoc	ScriptResourceBase::setNativeHandle
+		 */
+		void setNativeHandle(const HResource& resource) override;
 
+		/**
+		 * @brief	Returns the wrapped native mesh handle.
+		 */
 		HMesh getMeshHandle() const { return mMesh; }
 	private:
 		friend class ScriptResourceManager;
 
 		ScriptMesh(MonoObject* instance, const HMesh& mesh);
 
+		/**
+		 * @copydoc	ScriptObjectBase::_onManagedInstanceDeleted
+		 */
+		void _onManagedInstanceDeleted() override;
+
+		/**
+		 * @brief	Converts the C# MeshTopology enum to DrawOperationType enum
+		 *			used by engine internals.
+		 */
+		static DrawOperationType meshTopologyToDrawOp(MeshTopology topology);
+
+		/**
+		 * @brief	Converts the DrawOperationType enum used by engine 
+		 *			internals to C# MeshTopology enum.
+		 */
+		static MeshTopology drawOpToMeshTopology(DrawOperationType drawOp);
+		
+		/**
+		 * @brief	Converts a managed array of SubMeshData%es into an array
+		 *			of SubMesh%es used by engine internals.
+		 */
+		static Vector<SubMesh> monoToNativeSubMeshes(MonoArray* subMeshes);
+
+		HMesh mMesh;
+
+		/************************************************************************/
+		/* 								CLR HOOKS						   		*/
+		/************************************************************************/
+
 		static void internal_CreateInstance(MonoObject* instance, int numVertices,
 			int numIndices, MonoArray* subMeshes, MeshUsage usage, VertexLayout vertex, ScriptIndexType index);
 		static void internal_CreateInstanceMeshData(MonoObject* instance, ScriptMeshData* data, MonoArray* subMeshes,
@@ -59,13 +121,5 @@ namespace BansheeEngine
 		static void internal_GetBounds(ScriptMesh* thisPtr, AABox* box, Sphere* sphere);
 		static MonoObject* internal_GetMeshData(ScriptMesh* thisPtr);
 		static void internal_SetMeshData(ScriptMesh* thisPtr, ScriptMeshData* value);
-
-		static DrawOperationType meshTopologyToDrawOp(MeshTopology topology);
-		static MeshTopology drawOpToMeshTopology(DrawOperationType drawOp);
-		static Vector<SubMesh> monoToNativeSubMeshes(MonoArray* subMeshes);
-
-		void _onManagedInstanceDeleted();
-
-		HMesh mMesh;
 	};
 }

+ 0 - 2
TODO.txt

@@ -58,8 +58,6 @@ SceneTreeView
  - Add cut/copy/duplicate/paste functionality (+ appropriate context menu)
  - Clicking on an already selected element should start rename
  - Also add context with "New SceneObject" & "New SceneObject (Child)"
- - Elements in SceneTreeView aren't ordered properly (they reorder as I delete elements)
- - Dragging and dropping an element caused a crash when element was dropped
 
 Ribek use:
  - Camera, Renderable, Material, Texture inspector