48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
// types.h
|
|
|
|
#ifdef TYPES_SUBINCLUDE
|
|
#undef TYPES_SUBINCLUDE
|
|
|
|
/*
|
|
* Idea i had would be to have user data point to a key-value store based on struct meta data of
|
|
* our state, we would then encode into that before unloading, when we reload we check to see
|
|
* what's been serialised and pull it back out in to gur new potentially changed struct, this
|
|
* would in theory be more straight forward to understand than having 2 copies, or alternatively
|
|
* copying them in place like i was doing before
|
|
*/
|
|
|
|
struct(Sdfps,
|
|
field(SDL_Window *, window, NULL)
|
|
field(SDL_GLContext, context, NULL)
|
|
|
|
field(GLuint, vert_shader, 0)
|
|
field(GLuint, frag_shader, 0)
|
|
field(GLuint, shader_program, 0)
|
|
)
|
|
|
|
#else
|
|
|
|
#include <stdint.h>
|
|
|
|
typedef int8_t s8;
|
|
typedef uint8_t u8;
|
|
typedef int16_t s16;
|
|
typedef uint16_t u16;
|
|
typedef int32_t s32;
|
|
typedef uint32_t u32;
|
|
typedef int64_t s64;
|
|
typedef uint64_t u64;
|
|
typedef float f32;
|
|
typedef double f64;
|
|
|
|
/* initial struct definitions */
|
|
#define struct(TN, ...) typedef struct TN TN; struct TN { __VA_ARGS__ };
|
|
#define field(T, N, D) T N;
|
|
|
|
#define TYPES_SUBINCLUDE
|
|
#include __FILE__
|
|
#undef struct
|
|
#undef field
|
|
|
|
#endif
|