1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-16 07:49:56 +00:00
openmw-tes3mp/apps/openmw/mwvr/openxrswapchain.hpp
Mads Buvik Sandvei e948b686e8 some cleanup
2020-02-02 17:37:43 +01:00

52 lines
1.3 KiB
C++

#ifndef OPENXR_SWAPCHAIN_HPP
#define OPENXR_SWAPCHAIN_HPP
#include "openxrmanager.hpp"
#include "openxrtexture.hpp"
struct XrSwapchainSubImage;
namespace MWVR
{
class OpenXRSwapchainImpl;
class OpenXRSwapchain
{
public:
struct Config
{
int width = -1;
int height = -1;
int samples = -1;
};
public:
OpenXRSwapchain(osg::ref_ptr<OpenXRManager> XR, osg::ref_ptr<osg::State> state, Config config);
~OpenXRSwapchain();
public:
//! Prepare for render (set FBO)
void beginFrame(osg::GraphicsContext* gc);
//! Finalize render
int endFrame(osg::GraphicsContext* gc);
//! Get the view surface
const XrSwapchainSubImage& subImage(void) const;
//! Width of the view surface
int width();
//! Height of the view surface
int height();
//! Samples of the view surface
int samples();
//! Get the current texture
OpenXRTextureBuffer* renderBuffer();
//! Get the private implementation
OpenXRSwapchainImpl& impl() { return *mPrivate; }
//! Get the private implementation
const OpenXRSwapchainImpl& impl() const { return *mPrivate; }
private:
std::unique_ptr<OpenXRSwapchainImpl> mPrivate;
};
}
#endif