VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtXtalProvider.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
14 
15 #include <vrvUtil/DtQuat.h>
16 #include <matrix/vlVector.h>
17 
18 #include <osg/Matrixd>
19 
20 #include <string>
21 
22 
23 namespace makVrv
24 {
25  class DtVirtualRealityDriver;
26  class DtSwapChain;
27  class DtXtalSwapChain;
28 
32  {
33  private:
36 
39 
41  DtXtalProvider& operator=(const DtXtalProvider&);
42 
43  public:
46  static bool isVrAvailable();
47 
48  public:
50  DtXtalProvider(DtDe& de);
51 
53  virtual ~DtXtalProvider();
54 
56  virtual DtSubmitOverlayCallback* createOverlayCallback(osg::Texture* tex, DtDe& de, DtVirtualRealityDriver& driver);
57 
60 
62  virtual const std::string& providerName();
63 
65  virtual const std::string& deviceName();
66 
68  virtual bool initializeVR();
69 
71  virtual bool hasFocusViews();
72 
74  virtual bool useVrs();
75 
77  virtual DtVariableRateShadingImageUpdater* findVrsUpdater(DtVirtualRealityChannel* channel);
78 
80  virtual void getRecommendedRenderTargetSize(int& width, int& height, vrvVirtualReality::DtEye whichEye);
81 
83  virtual DtSwapChain* allocateSwapChain(vrvVirtualReality::DtEye whichEye, bool isOverlay);
84 
86  virtual void getProjectionAngles(vrvVirtualReality::DtEye eye, double& left, double& right, double& bottom, double& top, double znear, double zfar);
87 
89  virtual osg::Matrixd getEyeToHeadTransform(vrvVirtualReality::DtEye eye);
90 
92  virtual bool getHmdPose(DtVector& pos, DtQuat& ori);
93 
95  virtual void setHmdPoseOffset(const DtVector& pos, const DtQuat& ori);
96 
98  virtual bool getTrackedPose(DtVector& pos, DtQuat& ori, int index);
99 
101  virtual void commitEyeTexture(osg::RenderInfo& renderInfo, DtSwapChain* swapChain);
102 
104  virtual void commitHudTexture(osg::RenderInfo& renderInfo, DtSwapChain* swapChain);
105 
107  virtual void updateOverlayDimensions(float width, float height, float distance, int pixWidth, int pixHeight);
108 
110  virtual void tick();
111 
113  virtual bool reset();
114 
116  virtual bool shutdown();
117 
119  virtual bool hasTrackedCamera();
120 
122  virtual DtTrackedCamera* findTrackedCamera();
123 
125  virtual DtMixedRealityMask* findMixedRealityMask();
126 
128  virtual void startMixedReality();
129 
131  virtual void stopMixedReality();
132 
134  virtual bool supportsMixedReality();
135 
137  virtual bool supportsDepthBufferSubmission();
138 
140  virtual vrvVirtualReality::DtVrOverlayMode overlayMode();
141 
142  protected:
144  virtual void beginFrame();
145 
147  virtual void beginRendering();
148 
150  virtual void endRendering();
151 
153  virtual void generateBlendedSwapChain(osg::RenderInfo& renderInfo);
154 
155  protected:
156  //Xtal Structs
157  uint32_t myDevice;
159 
163  };
164 }
An Xtal implementation of the DtVirtualRealityProvider abstract base class.
Definition: DtXtalProvider.h:31
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
Contains DLL export macros.
bool myGraphicsInitalized
Definition: DtXtalProvider.h:158
DtXtalSwapChain * mySwapChain
Definition: DtXtalProvider.h:160
DtSwapChain * myFrameEyeSwapChain
Definition: DtXtalProvider.h:161
An abstract interface that provides VR System API services.
A Tracked camera is typically attached to the HMD and can provide position and orientation data in ad...
Definition: DtTrackedCamera.h:27
Base class for GPU updates of the variable rate shading image Draw a full screen quad using a shader ...
Definition: DtVariableRateShadingImageUpdater.h:26
A driver that manages virtual reality HMD and input devices.
Definition: DtVirtualRealityDriver.h:52
#define DT_DLL_VRVVR
Definition: vrvVirtualReality.h:19
DtEye
A virtual reality eye.
Definition: vrvVirtualReality.h:37
DtSwapChain * myFrameHudSwapChain
Definition: DtXtalProvider.h:162
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
Base implementation of a texture swapchain.
Definition: DtSwapChain.h:35
Xtal doesn&#39;t use a swapchain, but currently we need to unpack the texture array into a texture 2d whi...
Definition: DtXtalSwapChain.h:22
An abstract interface that provides VR System API services. Providers are created and provided to the...
Definition: DtVirtualRealityProvider.h:47
Contains makVrv::DtQuat class.
DtVrOverlayMode
Virtual reality render mode.
Definition: vrvVirtualReality.h:63
A VRV channel that represents the eyes of the HMD A Virtual Reality channel can render in a few diffe...
Definition: DtVirtualRealityChannel.h:30
Object to handle rendering a mixed reality mask object into the scene. Typically the it renders an ob...
Definition: DtMixedRealityMask.h:38
An OSG camera callback that will submit the channel to the underlying VR system as an overlay channel...
Definition: DtSubmitOverlayCallback.h:30
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
A utility Quaternion class.
Definition: DtQuat.h:19
A post processing effect responsible for submitting and mirroring the eye views to the VR subsystem...
Definition: DtVirtualRealityPostProcessor.h:34
An OSG camera callback that will submit the channel to the underlying VR system as an overlay channel...
Definition: DtSubmitViewCallback.h:30
uint32_t myDevice
Definition: DtXtalProvider.h:157

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)