// -*-c++-*- // SPDX-License-Identifier: LGPL-2.1-only // Copyright (C) 2021 James Hogan #ifndef OSGXR_OpenXRDisplay #define OSGXR_OpenXRDisplay 1 #include #include #include #include #include #include #include namespace osgXR { class XRState; /** a camera for each OpenXR view.*/ class OSGXR_EXPORT OpenXRDisplay : public osgViewer::ViewConfig { public: OpenXRDisplay(); OpenXRDisplay(Settings *settings); OpenXRDisplay(const OpenXRDisplay& rhs, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY); virtual ~OpenXRDisplay(); META_Object(osgXR, OpenXRDisplay); void configure(osgViewer::View& view) const override; protected: osg::ref_ptr _settings; // Internal OpenXR state object // FIXME this should probably belong elsewhere mutable osg::ref_ptr _state; }; } #endif