diff options
Diffstat (limited to 'NvCloth/samples/SampleBase/scene/SceneController.cpp')
| -rw-r--r-- | NvCloth/samples/SampleBase/scene/SceneController.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/NvCloth/samples/SampleBase/scene/SceneController.cpp b/NvCloth/samples/SampleBase/scene/SceneController.cpp index fa35d5d..2eedfe4 100644 --- a/NvCloth/samples/SampleBase/scene/SceneController.cpp +++ b/NvCloth/samples/SampleBase/scene/SceneController.cpp @@ -76,6 +76,8 @@ void SceneController::onSampleStart() mPhysXPrimitiveRenderMaterial = new RenderMaterial(getRenderer().getResourceManager(), "physx_primitive", ""); mPhysXPlaneRenderMaterial = new RenderMaterial(getRenderer().getResourceManager(), "physx_primitive_plane", ""); + mWeightedModelSkinRenderMaterial = new RenderMaterial(getRenderer().getResourceManager(), "weighted_model_skinned", ""); + /*{ IRenderMesh* mesh = getRenderer().getPrimitiveRenderMesh(PrimitiveRenderMeshType::Plane); @@ -184,13 +186,20 @@ void SceneController::changeScene(int index) mActiveScene = Scene::CreateScene(0, this); } mActiveScene->onInitialize(); + mDebugLineRenderBuffer->clear(); + mActiveScene->drawDebugVisualization(); } void SceneController::Animate(double dt) { if(mPaused && (mSingleStep <= 0)) { - //Re render debug lines from last frame + if(mActiveScene->debugVisualizationUpdateRequested()) + { + mDebugLineRenderBuffer->clear(); + mActiveScene->drawDebugVisualization(); + } + //else Re render debug lines from last frame getRenderer().queueRenderBuffer(mDebugLineRenderBuffer); return; } @@ -200,8 +209,6 @@ void SceneController::Animate(double dt) dt = 1.0 / 60.0; } - mDebugLineRenderBuffer->clear(); - mLeftOverTime += dt * mTimeScale; double simulationStep = 0.0; @@ -211,6 +218,8 @@ void SceneController::Animate(double dt) simulationStep = 1.0 / 60.0; mActiveScene->Animate(simulationStep); + mDebugLineRenderBuffer->clear(); + mActiveScene->drawDebugVisualization(); getRenderer().queueRenderBuffer(mDebugLineRenderBuffer); } @@ -267,6 +276,10 @@ void SceneController::drawUI() for(int i = 0; i < Scene::GetSceneCount(); i++) { pressed = pressed | ImGui::RadioButton(Scene::GetSceneName(i), &mActiveSceneIndex, i); + if(i == mActiveSceneIndex) + { + pressed = pressed | mActiveScene->drawSubScenes(); + } } if(pressed) changeScene(mActiveSceneIndex); |