Ver Fonte

Fixing bug in tiler

Panagiotis Christopoulos Charitos há 10 anos atrás
pai
commit
5169b4759d

+ 3 - 0
include/anki/renderer/MainRenderer.h

@@ -16,6 +16,7 @@ namespace anki {
 class ResourceManager;
 class ResourceManager;
 class ConfigSet;
 class ConfigSet;
 class SceneGraph;
 class SceneGraph;
+class Camera;
 
 
 /// @addtogroup renderer
 /// @addtogroup renderer
 /// @{
 /// @{
@@ -39,6 +40,8 @@ public:
 
 
 	ANKI_USE_RESULT Error render(SceneGraph& scene);
 	ANKI_USE_RESULT Error render(SceneGraph& scene);
 
 
+	void prepareForVisibilityTests(Camera& cam);
+
 	const String& getMaterialShaderSource() const
 	const String& getMaterialShaderSource() const
 	{
 	{
 		return m_materialShaderSource;
 		return m_materialShaderSource;

+ 2 - 0
include/anki/renderer/Renderer.h

@@ -233,6 +233,8 @@ public:
 		const ConfigSet& config,
 		const ConfigSet& config,
 		const Timestamp* globalTimestamp);
 		const Timestamp* globalTimestamp);
 
 
+	void prepareForVisibilityTests(Camera& cam);
+
 	/// @privatesection
 	/// @privatesection
 	/// @{
 	/// @{
 	GrManager& getGrManager()
 	GrManager& getGrManager()

+ 2 - 0
src/core/App.cpp

@@ -349,6 +349,8 @@ Error App::mainLoop(UserMainLoopCallback callback, void* userData)
 		// User update
 		// User update
 		ANKI_CHECK(callback(*this, userData, quit));
 		ANKI_CHECK(callback(*this, userData, quit));
 
 
+		m_renderer->prepareForVisibilityTests(m_scene->getActiveCamera());
+
 		ANKI_CHECK(m_scene->update(prevUpdateTime, crntTime, *m_renderer));
 		ANKI_CHECK(m_scene->update(prevUpdateTime, crntTime, *m_renderer));
 
 
 		ANKI_CHECK(m_renderer->render(*m_scene));
 		ANKI_CHECK(m_renderer->render(*m_scene));

+ 6 - 0
src/renderer/MainRenderer.cpp

@@ -185,4 +185,10 @@ F32 MainRenderer::getAspectRatio() const
 	return m_r->getAspectRatio();
 	return m_r->getAspectRatio();
 }
 }
 
 
+//==============================================================================
+void MainRenderer::prepareForVisibilityTests(Camera& cam)
+{
+	m_r->prepareForVisibilityTests(cam);
+}
+
 } // end namespace anki
 } // end namespace anki

+ 6 - 0
src/renderer/Renderer.cpp

@@ -279,4 +279,10 @@ Error Renderer::createDrawQuadPipeline(
 	return ErrorCode::NONE;
 	return ErrorCode::NONE;
 }
 }
 
 
+//==============================================================================
+void Renderer::prepareForVisibilityTests(Camera& cam)
+{
+	m_tiler->updateTiles(cam);
+}
+
 } // end namespace anki
 } // end namespace anki