#ifndef MSP_VR_DISPLAYDEVICE_H_
#define MSP_VR_DISPLAYDEVICE_H_
+#include <string>
#include <msp/gl/camera.h>
+#include <msp/gl/view.h>
namespace Msp {
namespace VR {
class HeadTrackingCamera;
class StereoCombiner;
+class StereoView;
class DisplayDevice
{
public:
virtual ~DisplayDevice() { }
- virtual HeadTrackingCamera *create_camera(const GL::Camera &) const = 0;
- virtual StereoCombiner *create_combiner() const = 0;
+ static DisplayDevice *create_device(const std::string &);
+
+ virtual void configure_window(Graphics::Window &) const = 0;
+ virtual void configure_view(StereoView &) const = 0;
+ virtual HeadTrackingCamera *create_camera(const GL::Camera &) = 0;
+ virtual StereoCombiner *create_combiner(GL::View &) = 0;
};
} // namespace VR