-#ifndef MSP_GL_OCULUSRIFTCOMBINER_H_
-#define MSP_GL_OCULUSRIFTCOMBINER_H_
+#ifndef MSP_VR_OCULUSRIFTCOMBINER_H_
+#define MSP_VR_OCULUSRIFTCOMBINER_H_
-#include "mesh.h"
-#include "program.h"
-#include "programdata.h"
+#include <msp/gl/mesh.h>
+#include <msp/gl/program.h>
+#include <msp/gl/programdata.h>
#include "stereocombiner.h"
namespace Msp {
-namespace GL {
+namespace VR {
/**
Presents a stereo view in a way suitable for an Oculus Rift HMD. All distances
class OculusRiftCombiner: public StereoCombiner
{
private:
- Mesh mesh;
- Program shprog;
- ProgramData left_shdata;
- ProgramData right_shdata;
+ GL::Mesh mesh;
+ GL::Program shprog;
+ GL::ProgramData left_shdata;
+ GL::ProgramData right_shdata;
float view_distance;
float lens_separation;
float eye_separation;
float distortion[4];
+ float chromatic[4];
float fill_factor;
public:
void set_lens_separation(float);
void set_eye_separation(float);
void set_distortion(float = 1.0f, float = 0.0f, float = 0.0f, float = 0.0f);
+ void set_red_aberration(float = 1.0f, float = 0.0f);
+ void set_blue_aberration(float = 1.0f, float = 0.0f);
void set_fill_factor(float);
private:
void update_parameters();
float undistort(float) const;
public:
- virtual void render(const Texture2D &, const Texture2D &) const;
+ virtual void render(const GL::Texture2D &, const GL::Texture2D &) const;
};
-} // namespace GL
+} // namespace VR
} // namespace Msp
#endif