Files
OpenVR-AdvancedSettings-frame/src/tabcontrollers/StatisticsTabController.h
T
matzman e39c240ff5 Complete GUI overhaul (from Qt Widgets to Qt Quick Controls 2)
Added chaperone profiles
Added separate supersampling sliders for applications/compositor
Added asynchronous reprojection on/off switch
Merged in Microphone Control Overlay
Added Push-to-Talk profiles
Updated to OpenVR 1.0.3
Requires at least SteamVR beta 1477423729.
2016-10-28 18:38:05 +02:00

80 lines
1.9 KiB
C++

#pragma once
#include <QObject>
#include <openvr.h>
class QQuickWindow;
// application namespace
namespace advsettings {
// forward declaration
class OverlayController;
class StatisticsTabController : public QObject {
Q_OBJECT
Q_PROPERTY(float hmdDistanceMoved READ hmdDistanceMoved)
Q_PROPERTY(float hmdRotations READ hmdRotations)
Q_PROPERTY(float leftControllerMaxSpeed READ leftControllerMaxSpeed)
Q_PROPERTY(float rightControllerMaxSpeed READ rightControllerMaxSpeed)
Q_PROPERTY(int droppedFrames READ droppedFrames)
Q_PROPERTY(int reprojectedFrames READ reprojectedFrames)
Q_PROPERTY(int timedOut READ timedOut)
private:
OverlayController* parent;
QQuickWindow* widget;
bool rotationResetFlag = false;
float rotationOffset = 0.0f;
int rotationDir = 0;
int64_t rotationCounter = 0;
float lastYaw = -1.0f;
unsigned lastPosTimer = 0;
float lastHmdPos[3];
bool lastHmdPosValid = false;
unsigned compositorStatsPid = 0;
float m_hmdRotation = 0.0f;
double m_hmdDistanceMoved = 0.0;
float m_leftControllerMaxSpeed = 0.0f;
float m_rightControllerMaxSpeed = 0.0f;
unsigned m_droppedFramesOffset = 0;
unsigned m_reprojectedFramesOffset = 0;
unsigned m_timedOutOffset = 0;
public:
void initStage1();
void initStage2(OverlayController* parent, QQuickWindow* widget);
void eventLoopTick(vr::TrackedDevicePose_t* devicePoses);
float hmdDistanceMoved() const;
float hmdRotations() const;
float rightControllerMaxSpeed() const;
float leftControllerMaxSpeed() const;
unsigned droppedFrames() const;
unsigned reprojectedFrames() const;
unsigned timedOut() const;
public slots:
void statsDistanceResetClicked();
void statsRotationResetClicked();
void statsLeftControllerSpeedResetClicked();
void statsRightControllerSpeedResetClicked();
void droppedFramesResetClicked();
void reprojectedFramesResetClicked();
void timedOutResetClicked();
};
} // namespace advsettings