33 #define GL_GLEXT_PROTOTYPES
37 #include <QOpenGLFunctions>
43 typedef ovrGLTexture_s ovrGLTexture;
45 class OVRWindow :
public QWindow,
protected QOpenGLFunctions
72 LowPersistence = ovrHmdCap_LowPersistence,
73 LatencyTesting = ovrHmdCap_LatencyTest,
74 DynamicPrediction = ovrHmdCap_DynamicPrediction,
76 OrientationTracking = ovrSensorCap_Orientation,
77 YawCorrection = ovrSensorCap_YawCorrection,
78 PositionalTracking = ovrSensorCap_Position,
80 ChromaticAberrationCorrection = ovrDistortionCap_Chromatic,
81 Timewarp = ovrDistortionCap_TimeWarp,
82 Vignette = ovrDistortionCap_Vignette,
114 QMatrix4x4 perspective;
128 OVRWindow(
const unsigned int& index,
const std::initializer_list<OVRWindow::Feature>& features);
148 QOpenGLContext&
getGL();
168 void enableFeatures(
const std::initializer_list<OVRWindow::Feature>& features,
const bool enable =
true);
215 void setIPD(
const float& ipd);
270 virtual void resizeGL(
const unsigned int& width,
const unsigned int& height);
294 void requestUpdateGL();
306 ovrGLConfig& getOvrGlConfig()
const;
310 ovrGLTexture& getOvrGlTexture(
const ovrEyeType& eye)
const;
314 void sanitizeRenderTargetConfiguration();
318 void sanitizeDeviceConfiguration();
322 void sanitizeRenderingConfiguration();
327 void adjustLOD(
const float& dt,
const unsigned int& tolerance);
332 void resizeEvent(QResizeEvent*
const) override final;
337 void exposeEvent(QExposeEvent* const) override final;
342 bool event(QEvent* const) override final;
352 const ovrHmdDesc _device;
360 bool _enableDynamicLOD;
368 bool _pendingUpdateRequest;
382 ovrFovPort _FOV[ovrEye_Count];
386 ovrEyeRenderDesc _renderInfo[ovrEye_Count];
394 float _nearClippingPlaneDistance;
398 float _farClippingPlaneDistance;
422 struct {
bool hmd, sensor; } device;
423 bool projections[ovrEye_Count];
458 #endif // OVRWINDOW_H
void enableDynamicLOD(const bool enable=true)
Definition: OVRWindow.cpp:337
void setIPD(const float &ipd)
Definition: OVRWindow.cpp:374
float getIPD() const
Definition: OVRWindow.cpp:367
Vision
Definition: OVRWindow.h:87
void makeCurrent()
Definition: OVRWindow.cpp:157
void setVision(const OVRWindow::Vision &vision)
Definition: OVRWindow.cpp:264
void setFarClippingDistance(const float &far)
Definition: OVRWindow.cpp:439
const QSet< OVRWindow::Feature > & getEnabledFeatures() const
Return a set of all enabled features.
Definition: OVRWindow.cpp:178
void toggleMultisampling()
Toggle multisampling.
Definition: OVRWindow.cpp:470
void reduceLOD()
Reduce the interface's level of detail.
Definition: OVRWindow.cpp:344
void setNearClippingDistance(const float &near)
Definition: OVRWindow.cpp:420
bool isMultisamplingEnabled() const
Definition: OVRWindow.cpp:451
void doneCurrent()
Definition: OVRWindow.cpp:164
void toggleVision()
Toggle vision modes.
Definition: OVRWindow.cpp:275
void enableFeatures(const std::initializer_list< OVRWindow::Feature > &features, const bool enable=true)
Definition: OVRWindow.cpp:226
LOD
Definition: OVRWindow.h:95
void toggleDynamicLOD()
Toggle dynamic LOD.
Definition: OVRWindow.cpp:360
QOpenGLContext & getGL()
Return the OVRWindow's OpenGL context.
Definition: OVRWindow.cpp:150
void setLOD(const OVRWindow::LOD &lod)
Definition: OVRWindow.cpp:289
const float & getPixelDensity() const
Definition: OVRWindow.cpp:394
const OVRWindow::LOD & getLOD() const
Definition: OVRWindow.cpp:282
bool isFeatureSupported(const OVRWindow::Feature &feature) const
Definition: OVRWindow.cpp:241
virtual void resizeGL(const unsigned int &width, const unsigned int &height)
This virtual function is called whenever the window is resized.
Definition: OVRWindow.cpp:133
const float & getFarClippingDistance() const
Definition: OVRWindow.cpp:432
bool isFeatureEnabled(const OVRWindow::Feature &feature) const
Definition: OVRWindow.cpp:234
Definition: OVRWindow.h:45
const OVRWindow::Vision & getVision() const
Definition: OVRWindow.cpp:257
virtual ~OVRWindow()
The destructor.
Definition: OVRWindow.cpp:109
A frame's render context.
Definition: OVRWindow.h:109
void enableMultisampling(const bool enable=true)
Definition: OVRWindow.cpp:458
const ovrHmdDesc & getDeviceInfo() const
Return the Oculus Rift's information.
Definition: OVRWindow.cpp:171
virtual void paintGL(const OVRWindow::FrameRenderContext &context, const float &dt)
This virtual function is called whenever a new frame needs to be rendered.
Definition: OVRWindow.cpp:138
void increaseLOD()
Increase the interface's level of detail.
Definition: OVRWindow.cpp:352
void setPixelDensity(const float &density)
Definition: OVRWindow.cpp:401
void LODChanged(const OVRWindow::LOD ¤tLOD)
bool hasValidGL() const
Returns true if the OVRWindow has a valid OpenGL context, false otherwise.
Definition: OVRWindow.cpp:143
void enableFeature(const OVRWindow::Feature &feature, const bool enable=true)
Definition: OVRWindow.cpp:185
Feature
Definition: OVRWindow.h:70
virtual void changeLOD(const OVRWindow::LOD &lod)
This virtual function is called whenever the level of detail (LOD) is changed.
Definition: OVRWindow.cpp:301
virtual void initializeGL()
Initialize OpenGL.
Definition: OVRWindow.cpp:128
OVRWindow()
Instantiate an OVRWindow object that is attached to an Oculus Rift device.
Definition: OVRWindow.cpp:93
const float & getNearClippingDistance() const
Definition: OVRWindow.cpp:413
void forceZeroIPD(const bool &force)
Definition: OVRWindow.cpp:382