]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/occludedscene.cpp
Access builtin resources through a global instance
[libs/gl.git] / source / render / occludedscene.cpp
index 143008cdc92af5a5a1a01a1627d7732fc60ebcbe..7c043fa691c5ab578fc7da430244db471632bdc0 100644 (file)
@@ -4,6 +4,7 @@
 #include "camera.h"
 #include "occludedscene.h"
 #include "renderer.h"
+#include "resources.h"
 #include "sphere.h"
 
 using namespace std;
@@ -12,18 +13,13 @@ namespace Msp {
 namespace GL {
 
 OccludedScene::OccludedScene():
-       bounding_mesh((VERTEX3, NORMAL3)),
-       bounding_shader("occluder.glsl"),
+       bounding_mesh(Resources::get_global().get<Mesh>("_occluder.mesh")),
+       bounding_shader(Resources::get_global().get<Program>("_occluder.glsl.shader")),
        occluder_min_size(0.25f),
        cache_dirty(false)
 {
        static Require req(ARB_occlusion_query);
        static Require req2(ARB_occlusion_query2);
-
-       /* Use a slightly larger radius to ensure that all parts of the renderable
-       fit inside the icosahedron */
-       IcoSphereBuilder(1.26f, 1).build(bounding_mesh);
-       bounding_mesh.set_winding(&WindingTest::counterclockwise());
 }
 
 OccludedScene::~OccludedScene()
@@ -87,7 +83,7 @@ void OccludedScene::finish_frame()
                i->renderable->finish_frame();
 }
 
-void OccludedScene::render(Renderer &renderer, const Tag &tag) const
+void OccludedScene::render(Renderer &renderer, Tag tag) const
 {
        if(renderables.empty())
                return;