Marko Pintera пре 12 година
родитељ
комит
1b3d1ea5ff
2 измењених фајлова са 15 додато и 3 уклоњено
  1. 13 1
      BansheeEngine/Include/BsRenderableRTTI.h
  2. 2 2
      GameObjectSerialization.txt

+ 13 - 1
BansheeEngine/Include/BsRenderableRTTI.h

@@ -9,11 +9,23 @@ namespace BansheeEngine
 	class BS_EXPORT RenderableRTTI : public CM::RTTIType<Renderable, CM::Component, RenderableRTTI>
 	{
 	private:
+		CM::HMesh& getMesh(Renderable* obj) { return obj->mMesh; }
+		void setMesh(Renderable* obj, CM::HMesh& val) { obj->mMesh = val; } 
+
+		CM::UINT64& getLayer(Renderable* obj) { return obj->mLayer; }
+		void setLayer(Renderable* obj, CM::UINT64& val) { obj->mLayer = val; }
+
+		CM::HMaterial& getMaterial(Renderable* obj, CM::UINT32 idx) { return obj->mMaterials[idx]; }
+		void setMaterial(Renderable* obj, CM::UINT32 idx, CM::HMaterial& val) { obj->setMaterial(idx, val); }
+		CM::UINT32 getNumMaterials(Renderable* obj) { return (CM::UINT32)obj->mMaterials.size(); }
+		void setNumMaterials(Renderable* obj, CM::UINT32 num) { obj->setNumMaterials(num); }
 
 	public:
 		RenderableRTTI()
 		{
-
+			addReflectableField("mMesh", 0, &RenderableRTTI::getMesh, &RenderableRTTI::setMesh);
+			addPlainField("mLayer", 1, &RenderableRTTI::getLayer, &RenderableRTTI::setLayer);
+			addReflectableArrayField("mMaterials", 2, &RenderableRTTI::getMaterial, &RenderableRTTI::getNumMaterials, &RenderableRTTI::setMaterial, &RenderableRTTI::setNumMaterials);
 		}
 
 		virtual const CM::String& getRTTIName()

+ 2 - 2
GameObjectSerialization.txt

@@ -1,5 +1,5 @@
 TODO
  - Test how Clone works on hierarchy of empty SceneObjects
- - Add RTTI for Renderable and test how Clone works with Components
-   - Test it with component referenes
+ - Test how Clone works with Components
+ - Test it with component referenes
  - Ability to break external references as a pre-processing step