update
This commit is contained in:
@@ -64,6 +64,28 @@ inline uint32 safeTruncateUInt64(uint64 val) {
|
||||
return (uint32)val;
|
||||
}
|
||||
|
||||
// === Platform to game services ===
|
||||
#if HANDMADE_INTERNAL
|
||||
|
||||
struct DebugReadFileResult {
|
||||
uint32 contentsSize;
|
||||
void *contents;
|
||||
};
|
||||
|
||||
#define DEBUG_PLATFORM_READ_ENTIRE_FILE(name) DebugReadFileResult name(char *filename)
|
||||
typedef DEBUG_PLATFORM_READ_ENTIRE_FILE(DebugPlatformReadEntireFileFn);
|
||||
|
||||
#define DEBUG_PLATFORM_FREE_FILE_MEMORY(name) void name(void *fileMemory)
|
||||
typedef DEBUG_PLATFORM_FREE_FILE_MEMORY(DebugPlatformFreeFileMemoryFn);
|
||||
|
||||
#define DEBUG_PLATFORM_WRITE_ENTIRE_FILE(name) bool32 name(char *filename, uint32 memorySize, void *memory)
|
||||
typedef DEBUG_PLATFORM_WRITE_ENTIRE_FILE(DebugPlatformWriteEntireFileFn);
|
||||
|
||||
#define DEBUG_PLATFORM_PRINTF(name) void name(wchar_t* format, ...)
|
||||
typedef DEBUG_PLATFORM_PRINTF(DebugPrintfFn);
|
||||
|
||||
#endif
|
||||
|
||||
// Game to platform layer services
|
||||
struct GameSoundOutputBuffer {
|
||||
int samplesPerSecond;
|
||||
@@ -111,10 +133,17 @@ struct GameInput {
|
||||
|
||||
struct GameMemory {
|
||||
bool32 isInitialised;
|
||||
|
||||
uint64 permanentStorageSize;
|
||||
void *permanentStorage; // required to be initialised to zero at startup
|
||||
|
||||
uint64 transientStorageSize;
|
||||
void *transientStorage; // required to be initialised to zero at startup
|
||||
|
||||
DebugPlatformReadEntireFileFn *debugReadEntireFile;
|
||||
DebugPlatformFreeFileMemoryFn *debugFreeFileMemory;
|
||||
DebugPlatformWriteEntireFileFn *debugWriteEntireFile;
|
||||
DebugPrintfFn *debug_printf;
|
||||
};
|
||||
|
||||
struct GameState {
|
||||
@@ -125,22 +154,11 @@ struct GameState {
|
||||
};
|
||||
|
||||
// === Game to platform services ===
|
||||
internal void gameUpdateAndRender(GameMemory *memory, GameInput *input, GameOffscreenBuffer *videoBuf);
|
||||
internal void gameGetSoundSamples(GameMemory *memory, GameSoundOutputBuffer *soundBuf);
|
||||
|
||||
// === Platform to game services ===
|
||||
#if HANDMADE_INTERNAL
|
||||
|
||||
struct DebugReadFileResult {
|
||||
uint32 contentsSize;
|
||||
void *contents;
|
||||
};
|
||||
|
||||
DebugReadFileResult DEBUG_platformReadEntireFile(char *filename);
|
||||
void DEBUG_platformFreeFileMemory(void *memory);
|
||||
bool32 DEBUG_platformWriteEntireFile(char *filename, uint32 memorySize, void *memory);
|
||||
void debug_printf(wchar_t* format, ...);
|
||||
|
||||
#endif
|
||||
|
||||
#define GAME_UPDATE_AND_RENDER(name) void name(GameMemory *memory, GameOffscreenBuffer *videoBuf, GameInput *input)
|
||||
typedef GAME_UPDATE_AND_RENDER(GameUpdateAndRenderFn);
|
||||
GAME_UPDATE_AND_RENDER(gameUpdateAndRenderStub) {}
|
||||
|
||||
#define GAME_GET_SOUND_SAMPLES(name) void name(GameMemory *memory, GameSoundOutputBuffer *soundBuf)
|
||||
typedef GAME_GET_SOUND_SAMPLES(GameGetSoundSamplesFn);
|
||||
GAME_GET_SOUND_SAMPLES(gameGetSoundSamplesStub) {}
|
||||
|
||||
Reference in New Issue
Block a user