--- /dev/null
+#ifndef MSP_GL_STEREOCOMBINER_H_
+#define MSP_GL_STEREOCOMBINER_H_
+
+namespace Msp {
+namespace GL {
+
+class Texture2D;
+
+class StereoCombiner
+{
+protected:
+ unsigned width_div;
+ unsigned height_div;
+ bool keep_aspect;
+ float fov;
+
+ StereoCombiner();
+public:
+ virtual ~StereoCombiner() { }
+
+ unsigned get_width_divisor() const { return width_div; }
+ unsigned get_height_divisor() const { return height_div; }
+ bool is_aspect_kept() const { return keep_aspect; }
+ float get_field_of_view() const { return fov; }
+
+ virtual void render(const Texture2D &, const Texture2D &) const = 0;
+};
+
+} // namespace GL
+} // namespace Msp
+
+#endif