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

43 lines
879 B
C++

// SPDX-License-Identifier: LGPL-2.1-only
// Copyright (C) 2021 James Hogan <james@albanarts.com>
#include <osgXR/OpenXRDisplay>
#include <osg/ref_ptr>
#include <osgViewer/ViewerBase>
#include "XRState.h"
#include "XRRealizeOperation.h"
using namespace osgXR;
OpenXRDisplay::OpenXRDisplay()
{
}
OpenXRDisplay::OpenXRDisplay(Settings *settings):
_settings(settings)
{
}
OpenXRDisplay::OpenXRDisplay(const OpenXRDisplay& rhs,
const osg::CopyOp& copyop):
ViewConfig(rhs,copyop),
_settings(rhs._settings)
{
}
OpenXRDisplay::~OpenXRDisplay()
{
}
void OpenXRDisplay::configure(osgViewer::View &view) const
{
osgViewer::ViewerBase *viewer = dynamic_cast<osgViewer::ViewerBase *>(&view);
if (!viewer)
return;
_state = new XRState(_settings);
viewer->setRealizeOperation(new XRRealizeOperation(_state, &view));
}