- Add new Preferences item for Oculus Max FPS, defaults to 75, range is
[30, 95]
- Load and save this value appropriately
- When VR mode is enabled/disabled, set the Render Target Framerate to
this value/unlimited
This commit is contained in:
Pete 2014-10-26 21:14:20 -07:00
parent 87f688a299
commit 8d97a20bd9
6 changed files with 113 additions and 17 deletions

View file

@ -1494,9 +1494,12 @@ void Application::setEnableVRMode(bool enableVRMode) {
OculusManager::disconnect(); OculusManager::disconnect();
OculusManager::connect(); OculusManager::connect();
} }
int oculusMaxFPS = Menu::getInstance()->getOculusUIMaxFPS();
setRenderTargetFramerate(oculusMaxFPS);
OculusManager::recalibrate(); OculusManager::recalibrate();
} else { } else {
OculusManager::abandonCalibration(); OculusManager::abandonCalibration();
setRenderTargetFramerate(0);
} }
resizeGL(_glWidget->getDeviceWidth(), _glWidget->getDeviceHeight()); resizeGL(_glWidget->getDeviceWidth(), _glWidget->getDeviceHeight());

View file

@ -105,6 +105,7 @@ Menu::Menu() :
_maxVoxels(DEFAULT_MAX_VOXELS_PER_SYSTEM), _maxVoxels(DEFAULT_MAX_VOXELS_PER_SYSTEM),
_voxelSizeScale(DEFAULT_OCTREE_SIZE_SCALE), _voxelSizeScale(DEFAULT_OCTREE_SIZE_SCALE),
_oculusUIAngularSize(DEFAULT_OCULUS_UI_ANGULAR_SIZE), _oculusUIAngularSize(DEFAULT_OCULUS_UI_ANGULAR_SIZE),
_oculusUIMaxFPS(DEFAULT_OCULUS_UI_MAX_FPS),
_sixenseReticleMoveSpeed(DEFAULT_SIXENSE_RETICLE_MOVE_SPEED), _sixenseReticleMoveSpeed(DEFAULT_SIXENSE_RETICLE_MOVE_SPEED),
_invertSixenseButtons(DEFAULT_INVERT_SIXENSE_MOUSE_BUTTONS), _invertSixenseButtons(DEFAULT_INVERT_SIXENSE_MOUSE_BUTTONS),
_automaticAvatarLOD(true), _automaticAvatarLOD(true),
@ -783,6 +784,8 @@ void Menu::loadSettings(QSettings* settings) {
_walletPrivateKey = settings->value("privateKey").toByteArray(); _walletPrivateKey = settings->value("privateKey").toByteArray();
_oculusUIMaxFPS = loadSetting(settings, "oculusUIMaxFPS", 0.0f);
scanMenuBar(&loadAction, settings); scanMenuBar(&loadAction, settings);
Application::getInstance()->getAvatar()->loadData(settings); Application::getInstance()->getAvatar()->loadData(settings);
Application::getInstance()->updateWindowTitle(); Application::getInstance()->updateWindowTitle();
@ -844,6 +847,9 @@ void Menu::saveSettings(QSettings* settings) {
settings->endGroup(); settings->endGroup();
settings->setValue("privateKey", _walletPrivateKey); settings->setValue("privateKey", _walletPrivateKey);
// Oculus Rift settings
settings->setValue("oculusUIMaxFPS", _oculusUIMaxFPS);
scanMenuBar(&saveAction, settings); scanMenuBar(&saveAction, settings);
Application::getInstance()->getAvatar()->saveData(settings); Application::getInstance()->getAvatar()->saveData(settings);

View file

@ -100,6 +100,8 @@ public:
void setRealWorldFieldOfView(float realWorldFieldOfView) { _realWorldFieldOfView = realWorldFieldOfView; bumpSettings(); } void setRealWorldFieldOfView(float realWorldFieldOfView) { _realWorldFieldOfView = realWorldFieldOfView; bumpSettings(); }
float getOculusUIAngularSize() const { return _oculusUIAngularSize; } float getOculusUIAngularSize() const { return _oculusUIAngularSize; }
void setOculusUIAngularSize(float oculusUIAngularSize) { _oculusUIAngularSize = oculusUIAngularSize; bumpSettings(); } void setOculusUIAngularSize(float oculusUIAngularSize) { _oculusUIAngularSize = oculusUIAngularSize; bumpSettings(); }
int getOculusUIMaxFPS() const { return _oculusUIMaxFPS; }
void setOculusUIMaxFPS(int oculusUIMaxFPS) { _oculusUIMaxFPS = oculusUIMaxFPS; bumpSettings(); }
float getSixenseReticleMoveSpeed() const { return _sixenseReticleMoveSpeed; } float getSixenseReticleMoveSpeed() const { return _sixenseReticleMoveSpeed; }
void setSixenseReticleMoveSpeed(float sixenseReticleMoveSpeed) { _sixenseReticleMoveSpeed = sixenseReticleMoveSpeed; bumpSettings(); } void setSixenseReticleMoveSpeed(float sixenseReticleMoveSpeed) { _sixenseReticleMoveSpeed = sixenseReticleMoveSpeed; bumpSettings(); }
bool getInvertSixenseButtons() const { return _invertSixenseButtons; } bool getInvertSixenseButtons() const { return _invertSixenseButtons; }
@ -292,6 +294,7 @@ private:
int _maxVoxels; int _maxVoxels;
float _voxelSizeScale; float _voxelSizeScale;
float _oculusUIAngularSize; float _oculusUIAngularSize;
int _oculusUIMaxFPS;
float _sixenseReticleMoveSpeed; float _sixenseReticleMoveSpeed;
bool _invertSixenseButtons; bool _invertSixenseButtons;
bool _automaticAvatarLOD; bool _automaticAvatarLOD;

View file

@ -21,6 +21,7 @@
#include "ui/overlays/Text3DOverlay.h" #include "ui/overlays/Text3DOverlay.h"
const float DEFAULT_OCULUS_UI_ANGULAR_SIZE = 72.0f; const float DEFAULT_OCULUS_UI_ANGULAR_SIZE = 72.0f;
const int DEFAULT_OCULUS_UI_MAX_FPS = 75;
class Camera; class Camera;
class PalmData; class PalmData;

View file

@ -148,6 +148,8 @@ void PreferencesDialog::loadPreferences() {
ui.oculusUIAngularSizeSpin->setValue(menuInstance->getOculusUIAngularSize()); ui.oculusUIAngularSizeSpin->setValue(menuInstance->getOculusUIAngularSize());
ui.oculusUIMaxFPSSpin->setValue(menuInstance->getOculusUIMaxFPS());
ui.sixenseReticleMoveSpeedSpin->setValue(menuInstance->getSixenseReticleMoveSpeed()); ui.sixenseReticleMoveSpeedSpin->setValue(menuInstance->getSixenseReticleMoveSpeed());
ui.invertSixenseButtonsCheckBox->setChecked(menuInstance->getInvertSixenseButtons()); ui.invertSixenseButtonsCheckBox->setChecked(menuInstance->getInvertSixenseButtons());
@ -230,6 +232,8 @@ void PreferencesDialog::savePreferences() {
Menu::getInstance()->setOculusUIAngularSize(ui.oculusUIAngularSizeSpin->value()); Menu::getInstance()->setOculusUIAngularSize(ui.oculusUIAngularSizeSpin->value());
Menu::getInstance()->setOculusUIMaxFPS(ui.oculusUIMaxFPSSpin->value());
Menu::getInstance()->setSixenseReticleMoveSpeed(ui.sixenseReticleMoveSpeedSpin->value()); Menu::getInstance()->setSixenseReticleMoveSpeed(ui.sixenseReticleMoveSpeedSpin->value());
Menu::getInstance()->setInvertSixenseButtons(ui.invertSixenseButtonsCheckBox->isChecked()); Menu::getInstance()->setInvertSixenseButtons(ui.invertSixenseButtonsCheckBox->isChecked());

View file

@ -61,7 +61,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>500</width> <width>500</width>
<height>1386</height> <height>1459</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="verticalLayout_2">
@ -1772,21 +1772,21 @@
</item> </item>
<item> <item>
<widget class="QLineEdit" name="faceshiftHostnameEdit"> <widget class="QLineEdit" name="faceshiftHostnameEdit">
<property name="font"> <property name="font">
<font> <font>
<family>Arial</family> <family>Arial</family>
</font> </font>
</property> </property>
<property name="layoutDirection"> <property name="layoutDirection">
<enum>Qt::LeftToRight</enum> <enum>Qt::LeftToRight</enum>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true"/> <string notr="true"/>
</property> </property>
<property name="placeholderText"> <property name="placeholderText">
<string>localhost</string> <string>localhost</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
@ -2084,6 +2084,85 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_17">
<property name="spacing">
<number>0</number>
</property>
<property name="topMargin">
<number>7</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>7</number>
</property>
<item>
<widget class="QLabel" name="label_15">
<property name="font">
<font>
<family>Arial</family>
</font>
</property>
<property name="text">
<string>Oculus Rift FPS</string>
</property>
<property name="indent">
<number>0</number>
</property>
<property name="buddy">
<cstring>maxVoxelsSpin</cstring>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_18">
<property name="font">
<font>
<family>Arial</family>
</font>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSpinBox" name="oculusUIMaxFPSSpin">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<family>Arial</family>
</font>
</property>
<property name="minimum">
<number>30</number>
</property>
<property name="maximum">
<number>95</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>75</number>
</property>
</widget>
</item>
</layout>
</item>
<item> <item>
<widget class="QLabel" name="sixenseControllersTitleLabel"> <widget class="QLabel" name="sixenseControllersTitleLabel">
<property name="sizePolicy"> <property name="sizePolicy">