Skyscraper 2.0
|
Public Member Functions | |
OpenXRRenderWindow (RenderSystem *rsys) | |
~OpenXRRenderWindow () | |
virtual void | create (const String &name, unsigned int width, unsigned int height, bool fullScreen, const NameValuePairList *miscParams) override |
bool | requiresTextureFlipping () const |
void | _beginUpdate () override |
void | _endUpdate () override |
ID3D11Texture2D * | getSurface (uint index) const override |
uint | getNumberOfViews () const |
ID3D11RenderTargetView * | getRenderTargetView (uint index) const |
Viewport * | addViewport (Camera *cam, int zOrder=0, float x=0.0f, float y=0.0f, float w=0.0f, float h=0.0f) override |
void | setActiveEye (size_t eye) |
void | notifyDeviceLost (D3D11Device *device) |
void | notifyDeviceRestored (D3D11Device *device) |
Private Member Functions | |
bool | sessionReady () |
bool | shouldRender () |
void | ProcessOpenXREvents () |
void | _startXrFrame () |
void | _endXrFrame () |
Private Attributes | |
Ogre::Camera * | mEyeCameras [2] |
size_t | mNumberOfEyesAdded = 0 |
size_t | mActiveEye = 0 |
ComPtr< ID3D11Texture2D > | mpBackBuffer |
winrt::com_ptr< ID3D11RenderTargetView > | mRenderTargetViewL |
winrt::com_ptr< ID3D11RenderTargetView > | mRenderTargetViewR |
std::unique_ptr< OpenXRState > | mXrState |
std::unique_ptr< OpenXRSwapchain > | swapchainL |
std::unique_ptr< OpenXRSwapchain > | swapchainR |
std::unique_ptr< OpenXRViewProjection > | mViewProjections |
XrViewState | mXrViewState { XR_TYPE_VIEW_STATE } |
XrSessionState | mXrSessionState |
XrFrameState | mXrFrameState { XR_TYPE_FRAME_STATE } |
XrCompositionLayerProjection | mXrLayer { XR_TYPE_COMPOSITION_LAYER_PROJECTION } |
std::vector< XrCompositionLayerBaseHeader * > | mXrLayers |
Definition at line 42 of file OgreOpenXRRenderWindow.cpp.
Ogre::OpenXRRenderWindow::OpenXRRenderWindow | ( | RenderSystem * | rsys | ) |
The rendersystem must be a D3D11RenderSystem, because we use it to get the D3D11 device, but we don't request it directly so that the D3D11RenderSystem doesn't need to be linked to the consuming project.
Definition at line 127 of file OgreOpenXRRenderWindow.cpp.
References XROrientation, and XRPosition.
Ogre::OpenXRRenderWindow::~OpenXRRenderWindow | ( | ) |
Definition at line 149 of file OgreOpenXRRenderWindow.cpp.
|
override |
Definition at line 175 of file OgreOpenXRRenderWindow.cpp.
References _startXrFrame(), CHECK_HRCMD, xr::math::LoadXrPose(), mEyeCameras, mNumberOfEyesAdded, mpBackBuffer, mRenderTargetViewL, mRenderTargetViewR, mViewProjections, mXrFrameState, mXrState, mXrViewState, ProcessOpenXREvents(), shouldRender(), swapchainL, and swapchainR.
|
override |
Definition at line 264 of file OgreOpenXRRenderWindow.cpp.
References _endXrFrame(), shouldRender(), swapchainL, and swapchainR.
|
private |
Definition at line 412 of file OgreOpenXRRenderWindow.cpp.
References CHECK_XRCMD, mViewProjections, mXrFrameState, mXrLayer, mXrLayers, and mXrState.
Referenced by _endUpdate().
|
private |
Definition at line 385 of file OgreOpenXRRenderWindow.cpp.
References CHECK, CHECK_XRCMD, mXrFrameState, mXrLayer, mXrLayers, mXrState, and sessionReady().
Referenced by _beginUpdate().
|
override |
Definition at line 295 of file OgreOpenXRRenderWindow.cpp.
References mEyeCameras, and mNumberOfEyesAdded.
|
overridevirtual |
Ignores everything, yolo
Definition at line 157 of file OgreOpenXRRenderWindow.cpp.
References mViewProjections, mXrState, swapchainL, and swapchainR.
uint Ogre::OpenXRRenderWindow::getNumberOfViews | ( | ) | const |
Definition at line 276 of file OgreOpenXRRenderWindow.cpp.
ID3D11RenderTargetView * Ogre::OpenXRRenderWindow::getRenderTargetView | ( | uint | index | ) | const |
Definition at line 286 of file OgreOpenXRRenderWindow.cpp.
References mActiveEye, mRenderTargetViewL, and mRenderTargetViewR.
|
override |
Definition at line 281 of file OgreOpenXRRenderWindow.cpp.
References mActiveEye, swapchainL, and swapchainR.
void Ogre::OpenXRRenderWindow::notifyDeviceLost | ( | D3D11Device * | device | ) |
Definition at line 316 of file OgreOpenXRRenderWindow.cpp.
void Ogre::OpenXRRenderWindow::notifyDeviceRestored | ( | D3D11Device * | device | ) |
Definition at line 319 of file OgreOpenXRRenderWindow.cpp.
|
private |
Definition at line 322 of file OgreOpenXRRenderWindow.cpp.
References CHECK, CHECK_XRCMD, DEBUG_PRINT, mXrSessionState, mXrState, and Ogre::OpenXRState::primaryViewConfigType.
Referenced by _beginUpdate().
|
inline |
Definition at line 58 of file OgreOpenXRRenderWindow.cpp.
|
inlineprivate |
Definition at line 97 of file OgreOpenXRRenderWindow.cpp.
Referenced by _startXrFrame(), and setActiveEye().
void Ogre::OpenXRRenderWindow::setActiveEye | ( | size_t | eye | ) |
Definition at line 308 of file OgreOpenXRRenderWindow.cpp.
References mActiveEye, mpBackBuffer, sessionReady(), swapchainL, and swapchainR.
|
inlineprivate |
Definition at line 98 of file OgreOpenXRRenderWindow.cpp.
Referenced by _beginUpdate(), and _endUpdate().
|
private |
Definition at line 78 of file OgreOpenXRRenderWindow.cpp.
Referenced by getRenderTargetView(), getSurface(), and setActiveEye().
|
private |
Definition at line 76 of file OgreOpenXRRenderWindow.cpp.
Referenced by _beginUpdate(), and addViewport().
|
private |
Definition at line 77 of file OgreOpenXRRenderWindow.cpp.
Referenced by _beginUpdate(), and addViewport().
|
private |
Definition at line 80 of file OgreOpenXRRenderWindow.cpp.
Referenced by _beginUpdate(), and setActiveEye().
|
private |
Definition at line 81 of file OgreOpenXRRenderWindow.cpp.
Referenced by _beginUpdate(), and getRenderTargetView().
|
private |
Definition at line 82 of file OgreOpenXRRenderWindow.cpp.
Referenced by _beginUpdate(), and getRenderTargetView().
|
private |
Definition at line 87 of file OgreOpenXRRenderWindow.cpp.
Referenced by _beginUpdate(), _endXrFrame(), and create().
|
private |
Definition at line 93 of file OgreOpenXRRenderWindow.cpp.
Referenced by _beginUpdate(), _endXrFrame(), and _startXrFrame().
|
private |
Definition at line 94 of file OgreOpenXRRenderWindow.cpp.
Referenced by _endXrFrame(), and _startXrFrame().
|
private |
Definition at line 95 of file OgreOpenXRRenderWindow.cpp.
Referenced by _endXrFrame(), and _startXrFrame().
|
private |
Definition at line 91 of file OgreOpenXRRenderWindow.cpp.
Referenced by ProcessOpenXREvents().
|
private |
Definition at line 84 of file OgreOpenXRRenderWindow.cpp.
Referenced by _beginUpdate(), _endXrFrame(), _startXrFrame(), create(), and ProcessOpenXREvents().
|
private |
Definition at line 89 of file OgreOpenXRRenderWindow.cpp.
Referenced by _beginUpdate().
|
private |
Definition at line 85 of file OgreOpenXRRenderWindow.cpp.
Referenced by _beginUpdate(), _endUpdate(), create(), getSurface(), and setActiveEye().
|
private |
Definition at line 86 of file OgreOpenXRRenderWindow.cpp.
Referenced by _beginUpdate(), _endUpdate(), create(), getSurface(), and setActiveEye().