Files
flightgear/3rdparty/osgXR/include/osgXR/OpenXRDisplay
2022-10-20 20:29:11 +08:00

50 lines
1.0 KiB
C++

// -*-c++-*-
// SPDX-License-Identifier: LGPL-2.1-only
// Copyright (C) 2021 James Hogan <james@albanarts.com>
#ifndef OSGXR_OpenXRDisplay
#define OSGXR_OpenXRDisplay 1
#include <osgXR/Export>
#include <osgXR/Settings>
#include <osg/Referenced>
#include <osg/ref_ptr>
#include <osgViewer/View>
#include <cinttypes>
#include <string>
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> _settings;
// Internal OpenXR state object
// FIXME this should probably belong elsewhere
mutable osg::ref_ptr<XRState> _state;
};
}
#endif