X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fopenvr%2Fopenvrsystem.h;h=119eb16e7e7948d211cea8b7804360c7d40b4a89;hb=2acdfcc95c317f30e725e17f0d372fce050830ef;hp=3e401edb18f3f1e0c8b6ba9b1f4d99c732635440;hpb=0b9fa4d7eb2acb22f5f4f31bbd508d0216421108;p=libs%2Fvr.git diff --git a/source/openvr/openvrsystem.h b/source/openvr/openvrsystem.h index 3e401ed..119eb16 100644 --- a/source/openvr/openvrsystem.h +++ b/source/openvr/openvrsystem.h @@ -12,7 +12,8 @@ namespace VR { class OpenVRSystem: public System { private: - GL::Matrix hmd_matrix; + unsigned n_tracked_devices; + std::vector tracking_matrices; static unsigned n_instances; @@ -20,14 +21,21 @@ public: OpenVRSystem(); ~OpenVRSystem(); + static bool is_maybe_available(); + virtual void configure_window(Graphics::Window &) const { } virtual void configure_view(StereoView &) const; + virtual bool is_absolute_tracking_supported() const { return true; } virtual void set_absolute_tracking(bool); + virtual bool get_absolute_tracking() const; virtual OpenVRCamera *create_camera(const GL::Camera &); virtual OpenVRCombiner *create_combiner(GL::View &); + virtual void tick(); + void update_pose_matrices(); - const GL::Matrix &get_hmd_matrix() const { return hmd_matrix; } + const GL::Matrix &get_tracking_matrix(unsigned) const; + const GL::Matrix &get_hmd_matrix() const; }; } // namespace VR