17 #include <matrix/vlVector.h>
19 #include <osg/Matrixd>
20 #include <osg/RenderInfo>
30 #include <Varjo_events.h>
31 #include <Varjo_layers.h>
33 #include <Varjo_world.h>
36 #define VARJO_USE_GAZE 1
41 class DtVirtualRealityChannel;
42 class DtVrsGazeMapUpdater;
43 class DtVarjoBeginFrameCallback;
44 class DtVarjoWaitForSyncThread;
98 virtual const std::string& providerName();
101 virtual const std::string& deviceName();
104 virtual bool initializeVR();
107 virtual bool hasFocusViews();
110 virtual bool useVrs();
122 virtual void getProjectionAngles(
vrvVirtualReality::DtEye eye,
double& left,
double& right,
double& bottom,
double& top,
double znear,
double zfar);
128 virtual void commitEyeTexture(osg::RenderInfo& renderInfo,
DtSwapChain* swapChain);
131 virtual void commitHudTexture(osg::RenderInfo& renderInfo,
DtSwapChain* swapChain);
134 virtual void updateOverlayDimensions(
float width,
float height,
float distance,
int pixWidth,
int pixHeight);
143 virtual void setHmdPoseOffset(
const DtVector& pos,
const DtQuat& ori);
146 virtual bool getTrackedPose(
DtVector& pos,
DtQuat& ori,
int index);
149 virtual const std::unordered_map<int64_t, DtTrackedMarker>& getTrackedMarkers()
const;
152 virtual bool reset();
155 virtual void triggerAction1();
158 virtual bool shutdown();
161 virtual bool hasTrackedCamera();
173 virtual void startMixedReality();
176 virtual void stopMixedReality();
179 virtual bool supportsMixedReality();
182 virtual bool supportsDepthBufferSubmission();
185 virtual bool supportsRealWorldDepthTesting();
188 virtual void startRealWorldDepthTesting();
191 virtual void stopRealWorldDepthTesting();
194 void setOverlayEnabled(
bool enabled);
197 void calibrateEyeTracking();
202 varjo_Session* findVarjoSystem()
const;
208 static bool isVrAvailable();
213 void invokeWaitForSyncOp();
216 void blockTillWaitForSyncComplete();
219 virtual void beginFrame();
222 virtual void beginRendering();
225 virtual void endRendering();
228 virtual void initViewports();
231 void commitEyeTexture(
unsigned int viewIndex, varjo_Viewport& viewPort,
int layer, varjo_SwapChain* swapChain, varjo_SwapChain* depthSwapChain);
234 void commitHudTexture(
unsigned int viewIndex, varjo_Viewport viewPort, varjo_SwapChain* swapChain);
237 virtual void updateEyeProjections();
240 virtual void updateEyeProjections(
unsigned int viewIndex,
DtVirtualRealityChannel* vrChannel,
unsigned int layer,
bool updateVarjoViewOnly =
false,
bool isHudView =
false);
243 varjo_Viewport calculateFocusRect(varjo_Viewport contextViewport,
const double focusProjectionMatrix[16],
const double contextProjectionMatrix[16]);
245 #if VARJO_USE_GAZE == 1
246 varjo_Error initGaze();
250 bool getGazeNormalizedCoords(
const osg::Matrixd& leftProjection,
const osg::Matrixd& rightProjection,
251 osg::Vec2* left, osg::Vec2* right)
const;
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
Drawable and pre Drawcallback that draw full screen quad to update vrs image.
std::vector< varjo_LayerMultiProjView > myMultiprojectionViews
Definition: DtVarjoProvider.h:261
std::vector< varjo_ViewExtensionDepth > myExtDepthViews
Definition: DtVarjoProvider.h:262
bool myEyeTrackingInitalized
Definition: DtVarjoProvider.h:268
Contains DLL export macros.
osg::Vec3d myHmdPostionOffset
Definition: DtVarjoProvider.h:270
std::vector< ViewSettings > myViewSettings
Definition: DtVarjoProvider.h:259
bool myHaveCalibratedEyeTracking
Definition: DtVarjoProvider.h:269
ViewSettings()
CTOR.
Definition: DtVarjoProvider.h:60
A Varjo implementation of the DtVirtualRealityProvider abstract base class.
Definition: DtVarjoProvider.h:49
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
double myFarClip
Definition: DtVarjoProvider.h:66
Base class for GPU updates of the variable rate shading image Draw a full screen quad using a shader ...
Definition: DtVariableRateShadingImageUpdater.h:26
std::vector< varjo_Viewport > myViewports
Definition: DtVarjoProvider.h:258
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
varjo_Session * myVarjoSession
Definition: DtVarjoProvider.h:256
osg::Quat myHmdRotationOffset
Definition: DtVarjoProvider.h:271
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
An OSG camera predraw callback, can be used as a sync point.
Definition: DtBeginFrameCallback.h:23
std::vector< varjo_ViewExtensionDepthTestRange > myExtDepthTestRangeViews
Definition: DtVarjoProvider.h:263
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
DtVarjoWaitForSyncThread * myWaitForSyncThread
Definition: DtVarjoProvider.h:277
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
friend DtVarjoBeginFrameCallback
Definition: DtVarjoProvider.h:52
varjo_World * myVarjoWorld
Definition: DtVarjoProvider.h:273
bool myUseDepthLayers
Definition: DtVarjoProvider.h:260
std::vector< varjo_LayerMultiProjView > myHudViews
Definition: DtVarjoProvider.h:264
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
std::unordered_map< int64_t, DtTrackedMarker > myTrackedMarkers
Definition: DtVarjoProvider.h:274
varjo_FrameInfo * myFrameInfo
Definition: DtVarjoProvider.h:265
double myNearClip
Definition: DtVarjoProvider.h:65
friend DtVarjoWaitForSyncThread
Definition: DtVarjoProvider.h:53
Wraps functionality of Variable Rate Shading Image.
std::string myDeviceName
Definition: DtVarjoProvider.h:266
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
Holds settings related to a view.
Definition: DtVarjoProvider.h:57
int32_t myViewCount
Definition: DtVarjoProvider.h:257