townengine/include/twn_context.h

43 lines
973 B
C
Raw Normal View History

#ifndef TWN_CONTEXT_H
#define TWN_CONTEXT_H
#include "twn_input.h"
#include "twn_engine_api.h"
#include <stdbool.h>
#include <stdint.h>
typedef struct Context {
InputState input;
int64_t delta_time; /* preserves real time frame delta with no manipilation */
uint64_t tick_count;
/* set just once on startup */
uint64_t random_seed;
/* this should be a multiple of the current ticks per second */
/* use it to simulate low framerate (e.g. at 60 tps, set to 2 for 30 fps) */
/* it can be changed at runtime; any resulting logic anomalies are bugs */
unsigned int update_multiplicity;
int window_w;
int window_h;
int base_draw_w;
int base_draw_h;
/* you may read from and write to these from game code */
void *udata;
bool debug;
bool is_running;
bool window_size_has_changed;
bool initialization_needed;
} Context;
#ifndef TWN_ENGINE_CONTEXT_C_H
TWN_API extern Context ctx;
#endif
#endif