Quellcode durchsuchen

Skybox and ReflectionProbe components exposed to C#

BearishSun vor 8 Jahren
Ursprung
Commit
cf2934f786

+ 12 - 3
Source/BansheeCore/Include/BsCReflectionProbe.h

@@ -15,30 +15,36 @@ namespace bs
 	/**
 	 * @copydoc	ReflectionProbe
 	 *
-	 * Wraps ReflectionProbe as a Component.
+	 * @note	Wraps ReflectionProbe as a Component.
 	 */
-	class BS_CORE_EXPORT CReflectionProbe : public Component
+	class BS_CORE_EXPORT BS_SCRIPT_EXPORT(n:ReflectionProbe) CReflectionProbe : public Component
 	{
 	public:
 		CReflectionProbe(const HSceneObject& parent);
 		virtual ~CReflectionProbe();
 
 		/** @copydoc ReflectionProbe::getType */
+		BS_SCRIPT_EXPORT(n:Type,pr:getter)
 		ReflectionProbeType getType() const { return mInternal->getType(); }
 
 		/** @copydoc ReflectionProbe::setType */
+		BS_SCRIPT_EXPORT(n:Type,pr:setter)
 		void setType(ReflectionProbeType type) { mInternal->setType(type); }
 
 		/** @copydoc ReflectionProbe::getRadius */
+		BS_SCRIPT_EXPORT(n:Radius,pr:getter)
 		float getRadius() const { return mInternal->getRadius(); }
 
-		/** @copydoc ReflectionProbe::setRadius  */
+		/** @copydoc ReflectionProbe::setRadius */
+		BS_SCRIPT_EXPORT(n:Radius,pr:setter)
 		void setRadius(float radius) { mInternal->setRadius(radius); }
 
 		/** @copydoc ReflectionProbe::getExtents */
+		BS_SCRIPT_EXPORT(n:Extents,pr:getter)
 		Vector3 getExtents() const { return mInternal->getExtents(); }
 
 		/** @copydoc ReflectionProbe::setExtents */
+		BS_SCRIPT_EXPORT(n:Extents,pr:setter)
 		void setExtents(const Vector3& extents) { mInternal->setExtents(extents); }
 
 		/** Retrieves transition distance set by setTransitionDistance(). */
@@ -48,15 +54,18 @@ namespace bs
 		void setTransitionDistance(float distance) { mInternal->setTransitionDistance(distance); }
 
 		/** @copydoc ReflectionProbe::getCustomTexture */
+		BS_SCRIPT_EXPORT(n:CustomTexture,pr:getter)
 		HTexture getCustomTexture() const { return mInternal->getCustomTexture(); }
 
 		/** @copydoc ReflectionProbe::setCustomTexture */
+		BS_SCRIPT_EXPORT(n:CustomTexture,pr:setter)
 		void setCustomTexture(const HTexture& texture) { mInternal->setCustomTexture(texture); }
 
 		/** @copydoc ReflectionProbe::getBounds */
 		Sphere getBounds() const;
 
 		/** @copydoc ReflectionProbe::generate */
+		BS_SCRIPT_EXPORT(n:Generate)
 		void generate() { mInternal->generate(); }
 
 		/** @name Internal

+ 6 - 2
Source/BansheeCore/Include/BsCSkybox.h

@@ -15,24 +15,28 @@ namespace bs
 	/**
 	 * @copydoc	Skybox
 	 *
-	 * Wraps Skybox as a Component.
+	 * @note	Wraps Skybox as a Component.
 	 */
-	class BS_CORE_EXPORT CSkybox : public Component
+	class BS_CORE_EXPORT BS_SCRIPT_EXPORT(n:Skybox) CSkybox : public Component
 	{
 	public:
 		CSkybox(const HSceneObject& parent);
 		virtual ~CSkybox();
 
 		/** @copydoc Skybox::getTexture */
+		BS_SCRIPT_EXPORT(n:Texture,pr:getter)
 		HTexture getTexture() const { return mInternal->getTexture(); }
 
 		/** @copydoc Skybox::setTexture */
+		BS_SCRIPT_EXPORT(n:Texture,pr:setter)
 		void setTexture(const HTexture& texture) { mInternal->setTexture(texture); }
 
 		/** @copydoc Skybox::setBrightness */
+		BS_SCRIPT_EXPORT(n:Brightness,pr:setter)
 		void setBrightness(float brightness) { mInternal->setBrightness(brightness); }
 
 		/** @copydoc Skybox::getBrightness */
+		BS_SCRIPT_EXPORT(n:Brightness,pr:getter)
 		float getBrightness() const { return mInternal->getBrightness(); }
 
 		/** @name Internal

+ 1 - 1
Source/BansheeCore/Include/BsReflectionProbe.h

@@ -16,7 +16,7 @@ namespace bs
 	 */
 
 	/** Light type that determines how is light information parsed by the renderer and other systems. */
-	enum class ReflectionProbeType
+	enum BS_SCRIPT_EXPORT() class ReflectionProbeType
 	{
 		/**
 		 * Reflection probe cubemap is generated, and box extents are used for calculating influence ranges and box 

+ 0 - 1
Source/MBansheeEngine/MBansheeEngine.csproj

@@ -60,7 +60,6 @@
     <Compile Include="GUI\GUICanvas.cs" />
     <Compile Include="GUI\GUIScrollBar.cs" />
     <Compile Include="Rendering\PostProcessSettings.cs" />
-    <Compile Include="Rendering\Renderable2.cs" />
     <Compile Include="Serialization\ShowInInspector.cs" />
     <Compile Include="Serialization\Step.cs" />
     <Compile Include="Utility\AsyncOp.cs" />

+ 0 - 140
Source/MBansheeEngine/Rendering/Renderable2.cs

@@ -1,140 +0,0 @@
-//********************************** Banshee Engine (www.banshee3d.com) **************************************************//
-//**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
-using System;
-using System.Runtime.CompilerServices;
-
-namespace BansheeEngine
-{
-    /** @addtogroup Rendering
-     *  @{
-     */
-
-    /// <summary>
-    /// Renderable represents any visible object in the scene. It has a mesh, bounds and a set of materials. Renderer will 
-    /// render any Renderable objects visible by a camera.
-    /// </summary>
-    [RunInEditor]
-    public sealed class Renderable2 : Component
-    {
-        /// <summary>
-        /// Mesh to render. 
-        /// </summary>
-        public Mesh Mesh
-        {
-            get { return Internal_GetMesh(mCachedPtr); }
-            set
-            {
-                IntPtr meshPtr = IntPtr.Zero;
-                if (value != null)
-                    meshPtr = value.GetCachedPtr();
-
-                Internal_SetMesh(mCachedPtr, meshPtr);
-            }
-        }
-
-        /// <summary>
-        /// Material to use when rendering the mesh. If the mesh contains multiple sub-meshes then you may set individual
-        /// materials for each sub-mesh.
-        /// </summary>
-        public Material Material
-        {
-            get { return Internal_GetMaterial(mCachedPtr, 0); }
-            set
-            {
-                IntPtr materialPtr = IntPtr.Zero;
-                if (value != null)
-                    materialPtr = value.GetCachedPtr();
-
-                Internal_SetMaterial(mCachedPtr, materialPtr, 0);
-            }
-        }
-
-        /// <summary>
-        /// Materials to use when rendering the mesh. 
-        /// </summary>
-        public Material[] Materials
-        {
-            get { return Internal_GetMaterials(mCachedPtr); }
-            set { Internal_SetMaterials(mCachedPtr, value); }
-        }
-
-        /// <summary>
-        /// Returns a material for a specific sub-mesh.
-        /// </summary>
-        /// <param name="index">Index of the sub-mesh.</param>
-        /// <returns>Material used for rendering the sub-mesh at the specified index.</returns>
-        public Material GetMaterial(int index = 0)
-        {
-            return Internal_GetMaterial(mCachedPtr, index);
-        }
-
-        /// <summary>
-        /// Sets a material for a specific sub-mesh.
-        /// </summary>
-        /// <param name="material">Material to use for rendering the sub-mesh at the specified index.</param>
-        /// <param name="index">Index of the sub-mesh.</param>
-        public void SetMaterial(Material material, int index = 0)
-        {
-            IntPtr materialPtr = IntPtr.Zero;
-            if (material != null)
-                materialPtr = material.GetCachedPtr();
-
-            Internal_SetMaterial(mCachedPtr, materialPtr, index);
-        }
-
-        /// <summary>
-        /// Layer bitfield that controls whether a renderable is considered visible in a specific camera. Renderable layer 
-        /// must match camera layer in order for the camera to render the component.
-        /// </summary>
-        public UInt64 Layers
-        {
-            get { return Internal_GetLayers(mCachedPtr); }
-            set { Internal_SetLayers(mCachedPtr, value); }
-        }
-
-        /// <summary>
-        /// Gets world bounds of the mesh rendered by this object.
-        /// </summary>
-        public Bounds Bounds
-        {
-            get
-            {
-                AABox box;
-                Sphere sphere;
-
-                Internal_GetBounds(mCachedPtr, out box, out sphere);
-
-                return new Bounds(box, sphere);
-            }
-        }
-
-        [MethodImpl(MethodImplOptions.InternalCall)]
-        private static extern Mesh Internal_GetMesh(IntPtr thisPtr);
-
-        [MethodImpl(MethodImplOptions.InternalCall)]
-        private static extern void Internal_SetMesh(IntPtr thisPtr, IntPtr mesh);
-
-        [MethodImpl(MethodImplOptions.InternalCall)]
-        private static extern void Internal_GetBounds(IntPtr thisPtr, out AABox box, out Sphere sphere);
-
-        [MethodImpl(MethodImplOptions.InternalCall)]
-        private static extern UInt64 Internal_GetLayers(IntPtr thisPtr);
-
-        [MethodImpl(MethodImplOptions.InternalCall)]
-        private static extern void Internal_SetLayers(IntPtr thisPtr, UInt64 layers);
-
-        [MethodImpl(MethodImplOptions.InternalCall)]
-        private static extern Material Internal_GetMaterial(IntPtr thisPtr, int index);
-
-        [MethodImpl(MethodImplOptions.InternalCall)]
-        private static extern void Internal_SetMaterial(IntPtr thisPtr, IntPtr material, int index);
-
-        [MethodImpl(MethodImplOptions.InternalCall)]
-        private static extern Material[] Internal_GetMaterials(IntPtr thisPtr);
-
-        [MethodImpl(MethodImplOptions.InternalCall)]
-        private static extern void Internal_SetMaterials(IntPtr thisPtr, Material[] materials);
-    }
-
-    /** @} */
-}

+ 12 - 30
Source/SBansheeEngine/Include/BsBuiltinComponentLookup.h

@@ -14,10 +14,6 @@ namespace bs
 #define LOOKUP_BEGIN																										\
 	class BuiltinComponents																									\
 	{																														\
-	public:																													\
-		template<int TID>																									\
-		class TLookup { };																									\
-																															\
 	private:																												\
 		struct META_FirstEntry {};																							\
 		static void META_GetPrevEntries(Vector<BuiltinComponentInfo>& entries, META_FirstEntry id) { }						\
@@ -25,39 +21,33 @@ namespace bs
 		typedef META_FirstEntry 
 
 	/** Registers a new entry in the component lookup table. */
-#define ADD_ENTRY(TID, Type)																								\
-		META_Entry_##Type;																									\
+#define ADD_ENTRY(ComponentType, ScriptType)																				\
+		META_Entry_##ScriptType;																							\
 																															\
 	public:																													\
-		template<>																											\
-		class TLookup<TID>																									\
-		{																													\
-			typedef Type ScriptType;																						\
-		};																													\
-																															\
-		static ScriptComponentBase* create##Type(const HComponent& component)												\
+		static ScriptComponentBase* create##ScriptType(const HComponent& component)											\
 		{																													\
-			MonoObject* managedInstance = Type::getMetaData()->scriptClass->createInstance();								\
-			Type* scriptComponent = new (bs_alloc<Type>()) Type(managedInstance, component);								\
+			MonoObject* managedInstance = ScriptType::getMetaData()->scriptClass->createInstance();							\
+			ScriptType* scriptComponent = new (bs_alloc<ScriptType>()) ScriptType(managedInstance, component);				\
 																															\
 			return scriptComponent;																							\
 		}																													\
 																															\
-		struct META_NextEntry_##Type {};																					\
-		static void META_GetPrevEntries(Vector<BuiltinComponentInfo>& entries, META_NextEntry_##Type id)					\
+		struct META_NextEntry_##ScriptType {};																				\
+		static void META_GetPrevEntries(Vector<BuiltinComponentInfo>& entries, META_NextEntry_##ScriptType id)				\
 		{																													\
-			META_GetPrevEntries(entries, META_Entry_##Type());																\
+			META_GetPrevEntries(entries, META_Entry_##ScriptType());														\
 																															\
 			BuiltinComponentInfo entry;																						\
-			entry.metaData = Type::getMetaData();																			\
-			entry.typeId = TID;																								\
+			entry.metaData = ScriptType::getMetaData();																		\
+			entry.typeId = ComponentType::getRTTIStatic()->getRTTIId();														\
 			entry.monoClass = nullptr;																						\
-			entry.createCallback = &create##Type;																			\
+			entry.createCallback = &create##ScriptType;																		\
 																															\
 			entries.push_back(entry);																						\
 		}																													\
 																															\
-		typedef META_NextEntry_##Type
+		typedef META_NextEntry_##ScriptType
 
 	/** End the definition for the builtin component lookup table. */
 #define LOOKUP_END																											\
@@ -71,12 +61,4 @@ namespace bs
 			return entries;																									\
 		}																													\
 	};
-
-	LOOKUP_BEGIN
-		ADD_ENTRY(TID_CRenderable, ScriptRenderable2)
-	LOOKUP_END
-
-#undef LOOKUP_BEGIN
-#undef ADD_ENTRY
-#undef LOOKUP_END
 }

+ 0 - 25
Source/SBansheeEngine/Include/BsScriptRenderable.h

@@ -54,30 +54,5 @@ namespace bs
 		static void internal_OnDestroy(ScriptRenderable* thisPtr);
 	};
 
-	/**	Interop class between C++ & CLR for Renderable. */
-	class BS_SCR_BE_EXPORT ScriptRenderable2 : public TScriptComponent <ScriptRenderable2, CRenderable>
-	{
-	public:
-		SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "Renderable2")
-
-		ScriptRenderable2(MonoObject* managedInstance, const HComponent& component);
-
-	private:
-		~ScriptRenderable2();
-
-		/************************************************************************/
-		/* 								CLR HOOKS						   		*/
-		/************************************************************************/
-		static MonoObject* internal_GetMesh(ScriptRenderable2* thisPtr);
-		static void internal_SetMesh(ScriptRenderable2* thisPtr, ScriptMesh* mesh);
-		static void internal_GetBounds(ScriptRenderable2* thisPtr, AABox* box, Sphere* sphere);
-		static UINT64 internal_GetLayers(ScriptRenderable2* thisPtr);
-		static void internal_SetLayers(ScriptRenderable2* thisPtr, UINT64 layers);
-		static MonoObject* internal_GetMaterial(ScriptRenderable2* thisPtr, int index);
-		static void internal_SetMaterial(ScriptRenderable2* thisPtr, ScriptMaterial* material, int index);
-		static MonoArray* internal_GetMaterials(ScriptRenderable2* thisPtr);
-		static void internal_SetMaterials(ScriptRenderable2* thisPtr, MonoArray* materials);
-	};
-
 	/** @} */
 }

+ 4 - 4
Source/SBansheeEngine/Include/BsTextureEx.h

@@ -72,7 +72,7 @@ namespace bs
          * @return			A set of pixels for the specified mip level.
 		 */
 		BS_SCRIPT_EXPORT(e:Texture,n:GetPixels)
-		static SPtr<PixelData> getPixels(const HTexture& thisPtr, UINT32 face, UINT32 mipLevel);
+		static SPtr<PixelData> getPixels(const HTexture& thisPtr, UINT32 face = 0, UINT32 mipLevel = 0);
 
 		/**
 		 * Reads texture pixels directly from the GPU. This is similar to GetPixels" but the texture doesn't
@@ -87,7 +87,7 @@ namespace bs
 		 * @return			AsyncOp object that will contain a PixelData object when the operation completes.
 		 */
 		BS_SCRIPT_EXPORT(e:Texture,n:GetGPUPixels)
-		static SPtr<AsyncOpEx> getGPUPixels(const HTexture& thisPtr, UINT32 face, UINT32 mipLevel);
+		static SPtr<AsyncOpEx> getGPUPixels(const HTexture& thisPtr, UINT32 face = 0, UINT32 mipLevel = 0);
 
 		/**
 		 * Sets pixels for the specified mip level and face.
@@ -100,7 +100,7 @@ namespace bs
 		 *					cubemap array it has to be a multiple of 6).
 		 */
 		BS_SCRIPT_EXPORT(e:Texture,n:SetPixels)
-		static void setPixels(const HTexture& thisPtr, const SPtr<PixelData>& data, UINT32 face, UINT32 mipLevel);
+		static void setPixels(const HTexture& thisPtr, const SPtr<PixelData>& data, UINT32 face = 0, UINT32 mipLevel = 0);
 
 		/**
 		 * Sets pixels for the specified mip level and face.
@@ -114,7 +114,7 @@ namespace bs
 		 *					cubemap array it has to be a multiple of 6).
 		 */
 		BS_SCRIPT_EXPORT(e:Texture,n:SetPixels)
-		static void setPixelsArray(const HTexture& thisPtr, const Vector<Color>& colors, UINT32 face, UINT32 mipLevel);
+		static void setPixelsArray(const HTexture& thisPtr, const Vector<Color>& colors, UINT32 face = 0, UINT32 mipLevel = 0);
 	};
 
 	/** @endcond */

+ 1 - 1
Source/SBansheeEngine/Source/BsScriptAssemblyManager.cpp

@@ -25,8 +25,8 @@
 #include "BsScriptAudioClip.h"
 #include "BsScriptPrefab.h"
 #include "BsScriptAnimationClip.h"
-#include "BsBuiltinComponentLookup.h"
 
+#include "BsBuiltinComponentLookup.generated.h"
 #include "BsScriptTexture.generated.h"
 
 namespace bs

+ 0 - 1
Source/SBansheeEngine/Source/BsScriptComponent.cpp

@@ -15,7 +15,6 @@
 #include "BsManagedComponent.h"
 #include "BsSceneObject.h"
 #include "BsMonoUtil.h"
-#include "BsBuiltinComponentLookup.h"
 
 namespace bs
 {

+ 0 - 1
Source/SBansheeEngine/Source/BsScriptGameObjectManager.cpp

@@ -15,7 +15,6 @@
 #include "BsMonoClass.h"
 #include "BsScriptAssemblyManager.h"
 #include "BsScriptObjectManager.h"
-#include "BsBuiltinComponentLookup.h"
 
 using namespace std::placeholders;
 

+ 0 - 140
Source/SBansheeEngine/Source/BsScriptRenderable.cpp

@@ -170,144 +170,4 @@ namespace bs
 
 		ScriptObject::_onManagedInstanceDeleted();
 	}
-
-	ScriptRenderable2::ScriptRenderable2(MonoObject* managedInstance, const HComponent& component)
-		:TScriptComponent <ScriptRenderable2, CRenderable>(managedInstance, component)
-	{ }
-
-	ScriptRenderable2::~ScriptRenderable2()
-	{ }
-
-	void ScriptRenderable2::initRuntimeData()
-	{
-		metaData.scriptClass->addInternalCall("Internal_GetMesh", &ScriptRenderable2::internal_GetMesh);
-		metaData.scriptClass->addInternalCall("Internal_SetMesh", &ScriptRenderable2::internal_SetMesh);
-		metaData.scriptClass->addInternalCall("Internal_GetBounds", &ScriptRenderable2::internal_GetBounds);
-		metaData.scriptClass->addInternalCall("Internal_GetLayers", &ScriptRenderable2::internal_GetLayers);
-		metaData.scriptClass->addInternalCall("Internal_SetLayers", &ScriptRenderable2::internal_SetLayers);
-		metaData.scriptClass->addInternalCall("Internal_GetMaterial", &ScriptRenderable2::internal_GetMaterial);
-		metaData.scriptClass->addInternalCall("Internal_SetMaterial", &ScriptRenderable2::internal_SetMaterial);
-		metaData.scriptClass->addInternalCall("Internal_GetMaterials", &ScriptRenderable2::internal_GetMaterials);
-		metaData.scriptClass->addInternalCall("Internal_SetMaterials", &ScriptRenderable2::internal_SetMaterials);
-	}
-
-	MonoObject* ScriptRenderable2::internal_GetMesh(ScriptRenderable2* thisPtr)
-	{
-		HMesh mesh = thisPtr->getHandle()->getMesh();
-
-		if (!mesh.isLoaded(false))
-			return nullptr;
-
-		ScriptMesh* scriptMesh;
-		ScriptResourceManager::instance().getScriptResource(mesh, &scriptMesh, true);
-
-		return scriptMesh->getManagedInstance();
-	}
-
-	void ScriptRenderable2::internal_SetMesh(ScriptRenderable2* thisPtr, ScriptMesh* mesh)
-	{
-		HMesh nativeMesh;
-		if (mesh != nullptr)
-			nativeMesh = mesh->getHandle();
-
-		HRenderable renderable = thisPtr->getHandle();
-		renderable->setMesh(nativeMesh);
-	}
-
-	void ScriptRenderable2::internal_GetBounds(ScriptRenderable2* thisPtr, AABox* box, Sphere* sphere)
-	{
-		Bounds bounds = thisPtr->getHandle()->getBounds();
-
-		*box = bounds.getBox();
-		*sphere = bounds.getSphere();
-	}
-
-	UINT64 ScriptRenderable2::internal_GetLayers(ScriptRenderable2* thisPtr)
-	{
-		return thisPtr->getHandle()->getLayer();
-	}
-
-	void ScriptRenderable2::internal_SetLayers(ScriptRenderable2* thisPtr, UINT64 layers)
-	{
-		thisPtr->getHandle()->setLayer(layers);
-	}
-
-	MonoObject* ScriptRenderable2::internal_GetMaterial(ScriptRenderable2* thisPtr, int index)
-	{
-		HMaterial material = thisPtr->getHandle()->getMaterial(index);
-		if (!material.isLoaded())
-			return nullptr;
-
-		ScriptMaterial* scriptMaterial;
-		ScriptResourceManager::instance().getScriptResource(material, &scriptMaterial, true);
-
-		return scriptMaterial->getManagedInstance();
-	}
-
-	void ScriptRenderable2::internal_SetMaterial(ScriptRenderable2* thisPtr, ScriptMaterial* material, int index)
-	{
-		HMaterial nativeMaterial;
-		if (material != nullptr)
-			nativeMaterial = material->getHandle();
-
-		thisPtr->getHandle()->setMaterial(index, nativeMaterial);
-	}
-
-	MonoArray* ScriptRenderable2::internal_GetMaterials(ScriptRenderable2* thisPtr)
-	{
-		HRenderable renderable = thisPtr->getHandle();
-
-		HMesh mesh = renderable->getMesh();
-		if (!mesh.isLoaded())
-			return ScriptArray::create<ScriptMaterial>(0).getInternal();
-
-		UINT32 numMaterials = mesh->getProperties().getNumSubMeshes();
-		ScriptArray output = ScriptArray::create<ScriptMaterial>(numMaterials);
-
-		for(UINT32 i = 0; i < numMaterials; i++)
-		{
-			HMaterial material = renderable->getMaterial(i);
-			if (!material.isLoaded())
-				output.set(i, nullptr);
-			else
-			{
-				ScriptMaterial* scriptMaterial;
-				ScriptResourceManager::instance().getScriptResource(material, &scriptMaterial, true);
-
-				output.set(i, scriptMaterial->getManagedInstance());
-			}
-		}
-
-		return output.getInternal();
-	}
-
-	void ScriptRenderable2::internal_SetMaterials(ScriptRenderable2* thisPtr, MonoArray* materials)
-	{
-		HRenderable renderable = thisPtr->getHandle();
-
-		if (materials != nullptr)
-		{
-			ScriptArray scriptMaterials(materials);
-
-			Vector<HMaterial> nativeMaterials(scriptMaterials.size());
-			for (UINT32 i = 0; i < scriptMaterials.size(); i++)
-			{
-				MonoObject* monoMaterial = scriptMaterials.get<MonoObject*>(i);
-				ScriptMaterial* scriptMaterial = ScriptMaterial::toNative(monoMaterial);
-
-				if (scriptMaterial != nullptr)
-					renderable->setMaterial(i, scriptMaterial->getHandle());
-			}
-		}
-		else
-		{
-			HMesh mesh = renderable->getMesh();
-			if (!mesh.isLoaded())
-				return;
-
-			UINT32 numMaterials = mesh->getProperties().getNumSubMeshes();
-			for (UINT32 i = 0; i < numMaterials; i++)
-				renderable->setMaterial(i, HMaterial());
-		}
-	}
 }