Make the StereoCombiner information interface more flexible
[libs/vr.git] / source / sidebysidecombiner.cpp
index b9d1d89c243023faf1def099df849dc7b05b8d56..c5aef041ecf3f123501d9fc062d5c497f1abe1de 100644 (file)
@@ -1,6 +1,6 @@
-#include "meshbuilder.h"
+#include <msp/gl/meshbuilder.h>
+#include <msp/gl/texture2d.h>
 #include "sidebysidecombiner.h"
 #include "sidebysidecombiner.h"
-#include "texture2d.h"
 
 namespace {
 
 
 namespace {
 
@@ -24,21 +24,22 @@ const char fs_source[] =
 }
 
 namespace Msp {
 }
 
 namespace Msp {
-namespace GL {
+namespace VR {
 
 SideBySideCombiner::SideBySideCombiner(bool c):
 
 SideBySideCombiner::SideBySideCombiner(bool c):
-       mesh(VERTEX2),
+       mesh(GL::VERTEX2),
        shprog(vs_source, fs_source)
 {
        shprog(vs_source, fs_source)
 {
-       width_div = 2;
+       width_factor = 0.5f;
+       aspect_factor = 0.5f;
 
        left_shdata.uniform("texture", 0);
        right_shdata.uniform("texture", 0);
 
        set_cross_eyed(c);
 
 
        left_shdata.uniform("texture", 0);
        right_shdata.uniform("texture", 0);
 
        set_cross_eyed(c);
 
-       MeshBuilder bld(mesh);
-       bld.begin(TRIANGLE_STRIP);
+       GL::MeshBuilder bld(mesh);
+       bld.begin(GL::TRIANGLE_STRIP);
        bld.vertex(-1, 1);
        bld.vertex(-1, -1);
        bld.vertex(1, 1);
        bld.vertex(-1, 1);
        bld.vertex(-1, -1);
        bld.vertex(1, 1);
@@ -54,11 +55,11 @@ void SideBySideCombiner::set_cross_eyed(bool c)
        right_shdata.uniform("offset", m);
 }
 
        right_shdata.uniform("offset", m);
 }
 
-void SideBySideCombiner::render(const Texture2D &left, const Texture2D &right) const
+void SideBySideCombiner::render(const GL::Texture2D &left, const GL::Texture2D &right) const
 {
 {
-       Bind bind_shprog(shprog);
+       GL::Bind bind_shprog(shprog);
 
 
-       Bind bind_tex(left);
+       GL::Bind bind_tex(left);
        left_shdata.apply();
        mesh.draw();
 
        left_shdata.apply();
        mesh.draw();
 
@@ -67,5 +68,5 @@ void SideBySideCombiner::render(const Texture2D &left, const Texture2D &right) c
        mesh.draw();
 }
 
        mesh.draw();
 }
 
-} // namespace GL
+} // namespace VR
 } // namespace Msp
 } // namespace Msp