Selaa lähdekoodia

Same as before

Panagiotis Christopoulos Charitos 13 vuotta sitten
vanhempi
sitoutus
979df89c9d
3 muutettua tiedostoa jossa 25 lisäystä ja 7 poistoa
  1. 10 5
      anki/renderer/Deformer.cpp
  2. 2 1
      anki/renderer/Deformer.h
  3. 13 1
      anki/scene/SkinNode.h

+ 10 - 5
anki/renderer/Deformer.cpp

@@ -57,24 +57,29 @@ void Deformer::deform(SkinNode& skinNode, SkinPatchNode& node) const
 		&skinNode.getBoneTranslations()[0],
 		skinNode.getBoneTranslations().size());
 
-	node.getTfVao().bind();
+	SkinModelPatch& smp = node.getSkinModelPatch();
+
+	smp.getTransformFeedbackVao().bind();
 
 	// TF
 	glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0,
-		node.getSkinMesh().getTfVbo(SkinMesh::VBO_TF_POSITIONS)->getGlId());
+		smp.getSkinMesh().getTransformFeedbackVbo(
+		SkinMesh::VBO_TF_POSITIONS)->getGlId());
 
 	if(sProg == tfHwSkinningAllSProg.get())
 	{
 		glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 1,
-			node.getSkinMesh().getTfVbo(SkinMesh::VBO_TF_NORMALS)->getGlId());
+			smp.getSkinMesh().getTransformFeedbackVbo(
+			SkinMesh::VBO_TF_NORMALS)->getGlId());
 		glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 2,
-			node.getSkinMesh().getTfVbo(SkinMesh::VBO_TF_TANGENTS)->getGlId());
+			smp.getSkinMesh().getTransformFeedbackVbo(
+			SkinMesh::VBO_TF_TANGENTS)->getGlId());
 	}
 
 	//glBeginQuery(GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, this->Query);
 	glBeginTransformFeedback(GL_POINTS);
 		glDrawArrays(GL_POINTS, 0,
-			node.getSkinMesh().getVerticesNumber(0));
+			smp.getSkinMesh().getVerticesNumber(0));
 	glEndTransformFeedback();
 	//glEndQuery(GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN);
 

+ 2 - 1
anki/renderer/Deformer.h

@@ -9,6 +9,7 @@ namespace anki {
 
 class ShaderProgram;
 class SkinPatchNode;
+class SkinNode;
 
 
 /// SkinPatchNode deformer. It gets a SkinPatchNode and using transform
@@ -22,7 +23,7 @@ class Deformer
 		}
 		~Deformer();
 
-		void deform(SkinPatchNode& node, SkinPatchNode& subNode) const;
+		void deform(SkinNode& node, SkinPatchNode& subNode) const;
 
 	private:
 		ShaderProgramResourcePointer tfHwSkinningAllSProg;

+ 13 - 1
anki/scene/SkinNode.h

@@ -38,7 +38,7 @@ public:
 
 	/// @name Accessors
 	/// @{
-	const Vbo* getTfVbo(TfVboId id) const /// XXX Why pointer?
+	const Vbo* getTransformFeedbackVbo(TfVboId id) const /// XXX Why pointer?
 	{
 		return &tfVbos[id];
 	}
@@ -154,6 +154,18 @@ public:
 		CollisionShape* spatialCs); // Spatial
 	/// @}
 
+	/// @name Accessors
+	/// @{
+	SkinModelPatch& getSkinModelPatch()
+	{
+		return *skinModelPatch;
+	}
+	const SkinModelPatch& getSkinModelPatch() const
+	{
+		return *skinModelPatch;
+	}
+	/// @}
+
 	/// @name SceneNode virtuals
 	/// @{