|
|
@@ -10,74 +10,30 @@ using namespace anki;
|
|
|
class MyApp : public App
|
|
|
{
|
|
|
public:
|
|
|
- Bool m_profile = false;
|
|
|
- U32 m_argc = 0;
|
|
|
- Char** m_argv = nullptr;
|
|
|
-
|
|
|
MyApp(U32 argc, Char** argv)
|
|
|
- : App("Sandbox")
|
|
|
- , m_argc(argc)
|
|
|
- , m_argv(argv)
|
|
|
+ : App("Sandbox", argc, argv)
|
|
|
{
|
|
|
}
|
|
|
|
|
|
- Error userPreInit() override;
|
|
|
- Error userPostInit() override;
|
|
|
Error userMainLoop(Bool& quit, Second elapsedTime) override;
|
|
|
};
|
|
|
|
|
|
-Error MyApp::userPreInit()
|
|
|
-{
|
|
|
- ANKI_CHECK(CVarSet::getSingleton().setFromCommandLineArguments(m_argc - 1, m_argv + 1));
|
|
|
- return Error::kNone;
|
|
|
-}
|
|
|
-
|
|
|
-Error MyApp::userPostInit()
|
|
|
-{
|
|
|
- if(getenv("PROFILE"))
|
|
|
- {
|
|
|
- m_profile = true;
|
|
|
- g_cvarCoreTargetFps = 240;
|
|
|
-#if ANKI_TRACING_ENABLED
|
|
|
- g_cvarCoreTracingEnabled = true;
|
|
|
-#endif
|
|
|
- }
|
|
|
-
|
|
|
- return Error::kNone;
|
|
|
-}
|
|
|
-
|
|
|
Error MyApp::userMainLoop(Bool& quit, Second elapsedTime)
|
|
|
{
|
|
|
quit = false;
|
|
|
|
|
|
SceneGraph& scene = SceneGraph::getSingleton();
|
|
|
Input& in = Input::getSingleton();
|
|
|
- Renderer& renderer = Renderer::getSingleton();
|
|
|
|
|
|
- if(in.getKey(KeyCode::kEscape) > 0)
|
|
|
+ if(scene.isPaused())
|
|
|
{
|
|
|
- quit = true;
|
|
|
+ // Editor running
|
|
|
return Error::kNone;
|
|
|
}
|
|
|
|
|
|
// move the camera
|
|
|
static SceneNode* mover = &scene.getActiveCameraNode();
|
|
|
|
|
|
- if(in.getKey(KeyCode::k1) > 0)
|
|
|
- {
|
|
|
- mover = &scene.getActiveCameraNode();
|
|
|
- }
|
|
|
- if(in.getKey(KeyCode::k2) > 0)
|
|
|
- {
|
|
|
- mover = &scene.findSceneNode("Point.018_Orientation");
|
|
|
- }
|
|
|
-
|
|
|
- if(in.getKey(KeyCode::kL) == 1)
|
|
|
- {
|
|
|
- const Vec3 origin = mover->getWorldTransform().getOrigin().xyz;
|
|
|
- mover->setLocalOrigin(origin + Vec3(0, 15, 0));
|
|
|
- }
|
|
|
-
|
|
|
#if ANKI_TRACING_ENABLED
|
|
|
if(in.getKey(KeyCode::kF11) == 1)
|
|
|
{
|
|
|
@@ -94,34 +50,29 @@ Error MyApp::userMainLoop(Bool& quit, Second elapsedTime)
|
|
|
|
|
|
if(in.getMouseButton(MouseButton::kRight) > 0 || in.hasTouchDevice())
|
|
|
{
|
|
|
- constexpr F32 ROTATE_ANGLE = toRad(2.5f);
|
|
|
- constexpr F32 MOUSE_SENSITIVITY = 5.0f;
|
|
|
+ constexpr F32 kRotateAngle = toRad(2.5f);
|
|
|
+ constexpr F32 kMouseSensitivity = 5.0f;
|
|
|
|
|
|
in.hideMouseCursor(true);
|
|
|
|
|
|
- if(in.getKey(KeyCode::k1) == 1)
|
|
|
- {
|
|
|
- mover = &scene.getActiveCameraNode();
|
|
|
- }
|
|
|
-
|
|
|
if(in.getKey(KeyCode::kUp) > 0)
|
|
|
{
|
|
|
- mover->rotateLocalX(ROTATE_ANGLE);
|
|
|
+ mover->rotateLocalX(kRotateAngle);
|
|
|
}
|
|
|
|
|
|
if(in.getKey(KeyCode::kDown) > 0)
|
|
|
{
|
|
|
- mover->rotateLocalX(-ROTATE_ANGLE);
|
|
|
+ mover->rotateLocalX(-kRotateAngle);
|
|
|
}
|
|
|
|
|
|
if(in.getKey(KeyCode::kLeft) > 0)
|
|
|
{
|
|
|
- mover->rotateLocalY(ROTATE_ANGLE);
|
|
|
+ mover->rotateLocalY(kRotateAngle);
|
|
|
}
|
|
|
|
|
|
if(in.getKey(KeyCode::kRight) > 0)
|
|
|
{
|
|
|
- mover->rotateLocalY(-ROTATE_ANGLE);
|
|
|
+ mover->rotateLocalY(-kRotateAngle);
|
|
|
}
|
|
|
|
|
|
static F32 moveDistance = 0.1f;
|
|
|
@@ -172,9 +123,9 @@ Error MyApp::userMainLoop(Bool& quit, Second elapsedTime)
|
|
|
if(velocity != Vec2(0.0))
|
|
|
{
|
|
|
Euler angles(mover->getLocalRotation().getRotationPart());
|
|
|
- angles.x += velocity.y * toRad(360.0f) * F32(elapsedTime) * MOUSE_SENSITIVITY;
|
|
|
+ angles.x += velocity.y * toRad(360.0f) * F32(elapsedTime) * kMouseSensitivity;
|
|
|
angles.x = clamp(angles.x, toRad(-90.0f), toRad(90.0f)); // Avoid cycle in Y axis
|
|
|
- angles.y += -velocity.x * toRad(360.0f) * F32(elapsedTime) * MOUSE_SENSITIVITY;
|
|
|
+ angles.y += -velocity.x * toRad(360.0f) * F32(elapsedTime) * kMouseSensitivity;
|
|
|
angles.z = 0.0f;
|
|
|
mover->setLocalRotation(Mat3(angles));
|
|
|
}
|
|
|
@@ -202,9 +153,9 @@ Error MyApp::userMainLoop(Bool& quit, Second elapsedTime)
|
|
|
velocity *= 0.3f;
|
|
|
|
|
|
Euler angles(mover->getLocalRotation().getRotationPart());
|
|
|
- angles.x += velocity.y * toRad(360.0f) * F32(elapsedTime) * MOUSE_SENSITIVITY;
|
|
|
+ angles.x += velocity.y * toRad(360.0f) * F32(elapsedTime) * kMouseSensitivity;
|
|
|
angles.x = clamp(angles.x, toRad(-90.0f), toRad(90.0f)); // Avoid cycle in Y axis
|
|
|
- angles.y += -velocity.x * toRad(360.0f) * F32(elapsedTime) * MOUSE_SENSITIVITY;
|
|
|
+ angles.y += -velocity.x * toRad(360.0f) * F32(elapsedTime) * kMouseSensitivity;
|
|
|
angles.z = 0.0f;
|
|
|
mover->setLocalRotation(Mat3(angles));
|
|
|
}
|
|
|
@@ -240,74 +191,11 @@ Error MyApp::userMainLoop(Bool& quit, Second elapsedTime)
|
|
|
in.hideMouseCursor(false);
|
|
|
}
|
|
|
|
|
|
- if(in.getKey(KeyCode::kY) == 1)
|
|
|
- {
|
|
|
- renderer.setCurrentDebugRenderTarget(
|
|
|
- (renderer.getCurrentDebugRenderTarget() == "IndirectDiffuseClipmapsTest") ? "" : "IndirectDiffuseClipmapsTest");
|
|
|
- // g_shadowMappingPcssCVar = !g_shadowMappingPcssCVar;
|
|
|
- }
|
|
|
-
|
|
|
- if(in.getKey(KeyCode::kU) == 1)
|
|
|
- {
|
|
|
- renderer.setCurrentDebugRenderTarget((renderer.getCurrentDebugRenderTarget() == "Reflections") ? "" : "Reflections");
|
|
|
- }
|
|
|
-
|
|
|
- if(in.getKey(KeyCode::kI) == 1)
|
|
|
- {
|
|
|
- renderer.setCurrentDebugRenderTarget((renderer.getCurrentDebugRenderTarget() == "IndirectDiffuse") ? "" : "IndirectDiffuse");
|
|
|
- }
|
|
|
-
|
|
|
- if(in.getKey(KeyCode::kO) == 1)
|
|
|
- {
|
|
|
- renderer.setCurrentDebugRenderTarget((renderer.getCurrentDebugRenderTarget() == "RtMaterialFetchDbg") ? "" : "RtMaterialFetchDbg");
|
|
|
- }
|
|
|
-
|
|
|
- /*if(in.getKey(KeyCode::J) == 1)
|
|
|
- {
|
|
|
- renderer.setCurrentDebugRenderTarget((renderer.getCurrentDebugRenderTarget() == "MotionVectorsHistoryLength")
|
|
|
- ? ""
|
|
|
- : "MotionVectorsHistoryLength");
|
|
|
- }*/
|
|
|
-
|
|
|
- if(in.getKey(KeyCode::kP) == 1)
|
|
|
- {
|
|
|
- static U32 idx = 3;
|
|
|
- ++idx;
|
|
|
- idx %= 4;
|
|
|
- if(idx == 0)
|
|
|
- {
|
|
|
- renderer.setCurrentDebugRenderTarget("IndirectDiffuseVrsSri");
|
|
|
- }
|
|
|
- else if(idx == 1)
|
|
|
- {
|
|
|
- renderer.setCurrentDebugRenderTarget("VrsSriDownscaled");
|
|
|
- }
|
|
|
- else if(idx == 2)
|
|
|
- {
|
|
|
- renderer.setCurrentDebugRenderTarget("VrsSri");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- renderer.setCurrentDebugRenderTarget("");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if(in.getKey(KeyCode::kJ) == 1)
|
|
|
- {
|
|
|
- g_cvarGrVrs = !g_cvarGrVrs;
|
|
|
- }
|
|
|
-
|
|
|
if(in.getEvent(InputEvent::kWindowClosed))
|
|
|
{
|
|
|
quit = true;
|
|
|
}
|
|
|
|
|
|
- if(m_profile && GlobalFrameIndex::getSingleton().m_value == 1000)
|
|
|
- {
|
|
|
- quit = true;
|
|
|
- return Error::kNone;
|
|
|
- }
|
|
|
-
|
|
|
return Error::kNone;
|
|
|
}
|
|
|
|