1
0
mirror of https://github.com/rwengine/openrw.git synced 2024-09-03 17:19:46 +02:00

Clean up debug view selection code

This commit is contained in:
Daniel Evans 2016-10-12 00:29:24 +01:00
parent 02efff6f8f
commit 40d27b4a07
2 changed files with 38 additions and 19 deletions

View File

@ -722,19 +722,24 @@ void RWGame::render(float alpha, float time) {
auto rendertime = renderer->getRenderer()->popDebugGroup();
RW_PROFILE_BEGIN("debug");
if (showDebugPaths) {
renderDebugPaths(time);
}
if (showDebugStats) {
renderDebugStats(time, rendertime);
}
if (showDebugPhysics) {
if (world) {
world->dynamicsWorld->debugDrawWorld();
debug->flush(renderer);
}
switch (debugview_) {
case DebugViewMode::General:
renderDebugStats(time, rendertime);
break;
case DebugViewMode::Physics:
if (world) {
world->dynamicsWorld->debugDrawWorld();
debug->flush(renderer);
}
break;
case DebugViewMode::Navigation:
renderDebugPaths(time);
break;
case DebugViewMode::Objects:
/// @todo
break;
default:
break;
}
RW_PROFILE_END();
@ -960,6 +965,10 @@ void RWGame::renderProfile() {
}
void RWGame::globalKeyEvent(const SDL_Event& event) {
const auto toggle_debug = [&](DebugViewMode m) {
debugview_ = debugview_ == m ? DebugViewMode::Disabled : m;
};
switch (event.key.keysym.sym) {
case SDLK_LEFTBRACKET:
world->offsetGameTime(-30);
@ -974,13 +983,16 @@ void RWGame::globalKeyEvent(const SDL_Event& event) {
timescale *= 2.0f;
break;
case SDLK_F1:
showDebugStats = !showDebugStats;
toggle_debug(DebugViewMode::General);
break;
case SDLK_F2:
showDebugPaths = !showDebugPaths;
toggle_debug(DebugViewMode::Navigation);
break;
case SDLK_F3:
showDebugPhysics = !showDebugPhysics;
toggle_debug(DebugViewMode::Physics);
break;
case SDLK_F4:
toggle_debug(DebugViewMode::Objects);
break;
default:
break;

View File

@ -33,9 +33,16 @@ class RWGame {
bool inFocus = true;
ViewCamera lastCam, nextCam;
bool showDebugStats = false;
bool showDebugPaths = false;
bool showDebugPhysics = false;
enum class DebugViewMode {
Disabled,
General,
Physics,
Navigation,
Objects
};
DebugViewMode debugview_ = DebugViewMode::Disabled;
int lastDraws; /// Number of draws issued for the last frame.
std::string cheatInputWindow = std::string(32, ' ');