aboutsummaryrefslogtreecommitdiff
path: root/APEX_1.4/samples_v2/SampleBase/CommonUIController.cpp
diff options
context:
space:
mode:
authorsschirm <[email protected]>2016-12-23 14:20:36 +0100
committersschirm <[email protected]>2016-12-23 14:56:17 +0100
commitef6937e69e8ee3f409cf9d460d5ad300a65d5924 (patch)
tree710426e8daa605551ce3f34b581897011101c30f /APEX_1.4/samples_v2/SampleBase/CommonUIController.cpp
parentInitial commit: (diff)
downloadphysx-3.4-ef6937e69e8ee3f409cf9d460d5ad300a65d5924.tar.xz
physx-3.4-ef6937e69e8ee3f409cf9d460d5ad300a65d5924.zip
PhysX 3.4 / APEX 1.4 release candidate @21506124
Diffstat (limited to 'APEX_1.4/samples_v2/SampleBase/CommonUIController.cpp')
-rw-r--r--APEX_1.4/samples_v2/SampleBase/CommonUIController.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/APEX_1.4/samples_v2/SampleBase/CommonUIController.cpp b/APEX_1.4/samples_v2/SampleBase/CommonUIController.cpp
index 08be4392..f548d36b 100644
--- a/APEX_1.4/samples_v2/SampleBase/CommonUIController.cpp
+++ b/APEX_1.4/samples_v2/SampleBase/CommonUIController.cpp
@@ -45,6 +45,10 @@ HRESULT CommonUIController::DeviceCreated(ID3D11Device* pDevice)
TwAddVarCB(mSettingsBar, "WireFrame", TW_TYPE_BOOLCPP, CommonUIController::setWireframeEnabled,
CommonUIController::getWireframeEnabled, this, "group=Main key=o");
TwAddButton(mSettingsBar, "Reload Shaders", CommonUIController::onReloadShadersButton, this, "group=Main key=f5");
+ TwAddVarCB(mSettingsBar, "Fixed Sim Frequency Enabled", TW_TYPE_BOOLCPP, CommonUIController::setFixedTimestepEnabled,
+ CommonUIController::getFixedTimestepEnabled, this, "group=Main key=t");
+ TwAddVarCB(mSettingsBar, "Fixed Sim Frequency", TW_TYPE_UINT32, CommonUIController::setFixedSimFrequency,
+ CommonUIController::getFixedSimFrequency, this, "group=Main min=30 max=1000");
TwAddVarRW(mSettingsBar, "Ambient Color", TW_TYPE_COLOR3F, &(mApexRenderer->getAmbientColor()), "group='Scene'");
TwAddVarRW(mSettingsBar, "Point Light Color", TW_TYPE_COLOR3F, &(mApexRenderer->getPointLightColor()), "group='Scene'");
TwAddVarRW(mSettingsBar, "Point Light Pos", TW_TYPE_DIR3F, &(mApexRenderer->getPointLightPos()), "group='Scene'");
@@ -60,6 +64,7 @@ HRESULT CommonUIController::DeviceCreated(ID3D11Device* pDevice)
addHintLine("Rotate camera - RMB");
addHintLine("Move camera - WASDQE(SHIFT)");
addHintLine("Play/Pause - P");
+ addHintLine("Fixed/Variable sim freq - T");
addHintLine("Reload shaders - F5");
addHintLine("Wireframe - O");
@@ -205,6 +210,36 @@ void TW_CALL CommonUIController::getWireframeEnabled(void* value, void* clientDa
}
+void TW_CALL CommonUIController::setFixedTimestepEnabled(const void* value, void* clientData)
+{
+ CommonUIController* controller = static_cast<CommonUIController*>(clientData);
+ const bool enable = *static_cast<const bool*>(value);
+ if (controller->mApexController->usingFixedTimestep() != enable)
+ {
+ controller->mApexController->toggleFixedTimestep();
+ }
+}
+
+void TW_CALL CommonUIController::getFixedTimestepEnabled(void* value, void* clientData)
+{
+ CommonUIController* controller = static_cast<CommonUIController*>(clientData);
+ *static_cast<bool*>(value) = controller->mApexController->usingFixedTimestep();
+}
+
+
+void TW_CALL CommonUIController::setFixedSimFrequency(const void* value, void* clientData)
+{
+ CommonUIController* controller = static_cast<CommonUIController*>(clientData);
+ controller->mApexController->setFixedTimestep(1.0 / *static_cast<const uint32_t*>(value));
+}
+
+void TW_CALL CommonUIController::getFixedSimFrequency(void* value, void* clientData)
+{
+ CommonUIController* controller = static_cast<CommonUIController*>(clientData);
+ *static_cast<uint32_t*>(value) = static_cast<uint32_t>(1.0 / controller->mApexController->getFixedTimestep() + 0.5);
+}
+
+
void TW_CALL CommonUIController::onReloadShadersButton(void* clientData)
{
CommonUIController* controller = static_cast<CommonUIController*>(clientData);