Skyscraper 2.0
OgreOpenXRViewProjection.h
Go to the documentation of this file.
1/*
2 Skyscraper 2.0 - OpenXR View Projection
3 Portions Copyright (C)2024 Ryan Thoryk
4 MIT license - see LICENSE file
5 https://www.skyscrapersim.net
6 https://sourceforge.net/projects/skyscraper/
7 Contact - ryan@skyscrapersim.net
8*/
9
10/*
11 Original work produced by Glastonbridge Software Limited. This code is provided under the MIT license.
12 https://github.com/glastonbridge/OgreOpenXRRenderWindow
13*/
14
15#pragma once
16
17#include <openxr/openxr.h>
18#include <utility>
19#include "XrUtility/XrHandle.h"
20#include "XrUtility/XrMath.h"
21#include <vector>
22
23namespace Ogre {
24 class OpenXRState;
29 public:
31
32 void Initialize(OpenXRState* state);
33
34 void CalculateViewProjections(std::vector<xr::math::ViewProjection>& viewProjections);
35
36 size_t getNumberOfViews() const;
37
38 uint32_t getWidth();
39 uint32_t getHeight();
41
42 void UpdateXrViewInfo(XrViewState& ViewState, OpenXRState* state, XrTime displayTime);
43
44 std::vector<XrCompositionLayerProjectionView> ProjectionLayerViews;
45 std::vector<XrCompositionLayerDepthInfoKHR> DepthInfoViews;
46 private:
47
48 std::vector<XrView> Views;
49 std::vector<XrViewConfigurationView> ConfigViews;
50 };
51}
52#pragma once
std::vector< XrCompositionLayerDepthInfoKHR > DepthInfoViews
void CalculateViewProjections(std::vector< xr::math::ViewProjection > &viewProjections)
std::vector< XrCompositionLayerProjectionView > ProjectionLayerViews
void UpdateXrViewInfo(XrViewState &ViewState, OpenXRState *state, XrTime displayTime)
void Initialize(OpenXRState *state)
std::vector< XrViewConfigurationView > ConfigViews