diff options
| author | Raymaekers Luca <luca@spacehb.net> | 2025-10-10 11:29:09 +0200 |
|---|---|---|
| committer | Raymaekers Luca <luca@spacehb.net> | 2025-10-10 11:29:09 +0200 |
| commit | 7cb810089144d42d202e0b267235174d7869c5aa (patch) | |
| tree | 579008fbb822bc78412e3604909e94a4711cfeaf /code/game.h | |
| parent | 732e6a47ded496cd224e1cfadc2106b04dcf6859 (diff) | |
checkpoint
Diffstat (limited to 'code/game.h')
| -rw-r--r-- | code/game.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/code/game.h b/code/game.h new file mode 100644 index 0000000..0678e0b --- /dev/null +++ b/code/game.h @@ -0,0 +1,72 @@ +/* date = October 4th 2025 11:46 am */ + +#ifndef GAME_H +#define GAME_H + +//- Macro's +#define Assert(Expression) do { if(!(Expression)) { *(psize *)((psize)-1) = 0; } } while(0) + +//~ Types +// TODO: figure out how to get those from javascript, because they are going to be different in WASM64 +#include <stddef.h> +#include <stdint.h> +typedef int8_t s8; +typedef int16_t s16; +typedef int32_t s32; +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef float r32; +typedef s32 b32; +typedef u32 rune; +typedef size_t psize; +#define true 1 +#define false 0 + +#define local_persist static +#define global static +#define internal static + +struct string +{ + psize Count; + u8 *Data; +}; + +struct memory_arena +{ + psize Used; + psize Size; + void *Base; +}; +void +InitializeArena(memory_arena *Arena, psize Size, void *Base) +{ + Arena->Size = Size; + Arena->Base = (u8 *)Base; + Arena->Used = 0; +} + +#define PushStruct(Arena, type) ((type *)PushSize((Arena), (sizeof(type)))) +#define PushArray(Arena, Count, type) (type *)PushSize((Arena), (sizeof(type))*(Count)) +void * +PushSize(memory_arena *Arena, psize Size) +{ + Assert((Arena->Used + Size) < Arena->Size); + + void *Result = ((u8 *)Arena->Base + Arena->Used); + Arena->Used += Size; + + return Result; +} + +struct game_offscreen_buffer +{ + u8 *Memory; + s32 Width; + s32 Height; + s32 Pitch; + s32 BytesPerPixel; +}; + +#endif //GAME_H |
