diff options
Diffstat (limited to 'game/client/globals.hh')
| -rw-r--r-- | game/client/globals.hh | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/game/client/globals.hh b/game/client/globals.hh new file mode 100644 index 0000000..9423283 --- /dev/null +++ b/game/client/globals.hh @@ -0,0 +1,66 @@ +#ifndef CLIENTOBALS_HH +#define CLIENTOBALS_HH 1 +#pragma once + +#include "shared/globals.hh" + +class Config; +class ConfigKeyBind; +class ConfigGamepadAxis; +class ConfigGamepadButton; + +struct GLFWwindow; +struct ImFont; + +class Dimension; + +namespace globals +{ +extern Config client_config; + +extern GLFWwindow *window; + +// Some gamesystems that aren't really +// gameplay-oriented might still use client +// framerate to interpolate discrete things +// so it's still a good idea to keep these available +extern float window_frametime; +extern float window_frametime_avg; +extern std::uint64_t window_frametime_us; +extern std::uint64_t window_framecount; + +// https://gafferongames.com/post/fix_your_timestep/ +extern std::uint64_t fixed_accumulator; + +extern int width; +extern int height; +extern float aspect; + +extern GLuint world_fbo; +extern GLuint world_fbo_color; +extern GLuint world_fbo_depth; + +extern std::size_t num_drawcalls; +extern std::size_t num_triangles; + +extern ENetHost *client_host; + +extern Dimension *dimension; +extern entt::entity player; + +extern ImFont *font_debug; +extern ImFont *font_default; +extern ImFont *font_chat; + +extern ConfigKeyBind *gui_keybind_ptr; +extern ConfigGamepadAxis *gui_gamepad_axis_ptr; +extern ConfigGamepadButton *gui_gamepad_button_ptr; + +extern unsigned int gui_scale; +extern unsigned int gui_screen; + +extern ALCdevice *sound_dev; +extern ALCcontext *sound_ctx; +} // namespace globals + +#endif /* CLIENTOBALS_HH */ |
