2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-05-13 15:11:22 +00:00
Phillip Stephens 86dd3df1d0 Remove InputViewer position store
It's redundant now as ImGui is storing the position,
it wasn't before so I'm not sure what changed for it
to suddenly work, however let's not store things redundantly.
2023-10-28 09:12:09 -07:00

97 lines
3.1 KiB
C++

#pragma once
#include <algorithm>
#include <cstdint>
#include <string>
#include "Runtime/ConsoleVariables/CVarManager.hpp"
#undef min
#undef max
namespace metaforce {
using namespace std::literals;
#if defined(__APPLE__)
#define DEFAULT_GRAPHICS_API "Metal"sv
#else
#define DEFAULT_GRAPHICS_API "Vulkan"sv
#endif
struct CVarCommons {
CVarManager& m_mgr;
CVar* m_fullscreen = nullptr;
CVar* m_allowJoystickInBackground = nullptr;
CVar* m_graphicsApi = nullptr;
CVar* m_drawSamples = nullptr;
CVar* m_texAnisotropy = nullptr;
CVar* m_deepColor = nullptr;
CVar* m_variableDt = nullptr;
CVar* m_windowSize = nullptr;
CVar* m_windowPos = nullptr;
CVar* m_debugOverlayPlayerInfo = nullptr;
CVar* m_debugOverlayWorldInfo = nullptr;
CVar* m_debugOverlayAreaInfo = nullptr;
CVar* m_debugOverlayLayerInfo = nullptr;
CVar* m_debugOverlayShowFrameCounter = nullptr;
CVar* m_debugOverlayShowFramerate = nullptr;
CVar* m_debugOverlayShowInGameTime = nullptr;
CVar* m_debugOverlayShowResourceStats = nullptr;
CVar* m_debugOverlayShowRandomStats = nullptr;
CVar* m_debugOverlayShowRoomTimer = nullptr;
CVar* m_debugOverlayPipelineInfo = nullptr;
CVar* m_debugOverlayDrawCallInfo = nullptr;
CVar* m_debugOverlayBufferInfo = nullptr;
CVar* m_debugOverlayShowInput = nullptr;
CVar* m_debugOverlayCorner = nullptr;
CVar* m_debugInputOverlayCorner = nullptr;
CVar* m_debugToolDrawAiPath = nullptr;
CVar* m_debugToolDrawLighting = nullptr;
CVar* m_debugToolDrawCollisionActors = nullptr;
CVar* m_debugToolDrawMazePath = nullptr;
CVar* m_debugToolDrawPlatformCollision = nullptr;
CVar* m_logFile = nullptr;
CVar* m_lastDiscPath = nullptr;
CVarCommons(CVarManager& manager);
bool getFullscreen() const { return m_fullscreen->toBoolean(); }
bool getAllowJoystickInBackground() const { return m_allowJoystickInBackground->toBoolean(); }
void setFullscreen(bool b) { m_fullscreen->fromBoolean(b); }
std::string getGraphicsApi() const { return m_graphicsApi->toLiteral(); }
void setGraphicsApi(std::string_view api) { m_graphicsApi->fromLiteral(api); }
uint32_t getSamples() const { return std::max(1u, m_drawSamples->toUnsigned()); }
void setSamples(uint32_t v) { m_drawSamples->fromInteger(std::max(uint32_t(1), v)); }
uint32_t getAnisotropy() const { return std::max(1u, uint32_t(m_texAnisotropy->toUnsigned())); }
zeus::CVector2i getWindowSize() const { return m_windowSize->toVec2i(); }
zeus::CVector2i getWindowPos() const { return m_windowPos->toVec2i(); }
void setAnisotropy(uint32_t v) { m_texAnisotropy->fromInteger(std::max(1u, v)); }
bool getDeepColor() const { return m_deepColor->toBoolean(); }
void setDeepColor(bool b) { m_deepColor->fromBoolean(b); }
bool getVariableFrameTime() const { return m_variableDt->toBoolean(); }
void setVariableFrameTime(bool b) { m_variableDt->fromBoolean(b); }
std::string getLogFile() const { return m_logFile->toLiteral(); };
void setLogFile(std::string_view log) { m_logFile->fromLiteral(log); }
void serialize() { m_mgr.serialize(); }
static CVarCommons* instance();
};
} // namespace hecl