Panagiotis Christopoulos Charitos %!s(int64=13) %!d(string=hai) anos
pai
achega
bb6457ae47
Modificáronse 2 ficheiros con 38 adicións e 3 borrados
  1. 21 2
      anki/renderer/Drawer.cpp
  2. 17 1
      anki/renderer/Drawer.h

+ 21 - 2
anki/renderer/Drawer.cpp

@@ -1,6 +1,9 @@
 #include "anki/renderer/Drawer.h"
 #include "anki/resource/ShaderProgram.h"
 #include "anki/physics/Convertors.h"
+#include "anki/collision/Collision.h"
+#include "anki/scene/Frustumable.h"
+#include "anki/scene/Octree.h"
 
 
 namespace anki {
@@ -207,7 +210,7 @@ void DebugDrawer::end()
 	positionsVbo.write(&positions[0], 0, sizeof(Vec3) * pointIndex);
 	colorsVbo.write(&colors[0], 0, sizeof(Vec3) * pointIndex);
 
-	Mat4 pmv = r.getViewProjectionMat() * modelMat;
+	Mat4 pmv = vpMat * modelMat;
 	sProg->findUniformVariableByName("modelViewProjectionMat").set(pmv);
 
 	vao.bind();
@@ -274,7 +277,7 @@ void CollisionDbgDrawer::visit(const Plane& plane)
 	Mat4 trf(n * o, rot);
 
 	dbg->setModelMat(trf);
-	dbg->renderGrid();
+	dbg->drawGrid();
 }
 
 
@@ -490,4 +493,20 @@ void SceneDebugDrawer::draw(const OctreeNode& octnode, uint depth,
 }
 
 
+//==============================================================================
+// SceneDrawer                                                                 =
+//==============================================================================
+
+//==============================================================================
+void SceneDrawer::setupShaderProg(
+	const PassLevelKey& key,
+	const Camera& cam,
+	Renderable& renderable)
+{
+	const Material& mtl = renderable.getMaterial();
+	const ShaderProgram& sprog = mtl.getShaderProgram(key);
+	uint textunit;
+}
+
+
 }  // namespace anki

+ 17 - 1
anki/renderer/Drawer.h

@@ -15,6 +15,12 @@
 namespace anki {
 
 
+class Octree;
+class OctreeNode;
+class Renderer;
+class Camera;
+
+
 /// Draws simple primitives
 class DebugDrawer
 {
@@ -42,6 +48,10 @@ public:
 		crntCol = Vec3(col);
 	}
 	void setModelMat(const Mat4& modelMat);
+	void setViewProjectionMat(const Mat4& m)
+	{
+		vpMat = m;
+	}
 	/// @}
 
 private:
@@ -50,6 +60,7 @@ private:
 	std::array<Vec3, MAX_POINTS_PER_DRAW> positions;
 	std::array<Vec3, MAX_POINTS_PER_DRAW> colors;
 	Mat4 modelMat;
+	Mat4 vpMat;
 	uint pointIndex;
 	Vec3 crntCol;
 	Vbo positionsVbo;
@@ -201,7 +212,7 @@ class SceneDrawer
 {
 public:
 	/// The one and only constructor
-	SceneDrawer(const Renderer* r_)
+	SceneDrawer(Renderer* r_)
 		: r(r_)
 	{}
 
@@ -210,6 +221,11 @@ public:
 
 private:
 	Renderer* r;
+
+	void setupShaderProg(
+		const PassLevelKey& key,
+		const Camera& cam,
+		Renderable& renderable);
 };