Sorry if this question has been asked a bunch of times. I tried skimming through the forum and googling, but I couldn't find where it may have been asked. It's a question that has to do with the #define and typedef Casey uses for the platform function headers. More specifically:
#define GAME_UPDATE_AND_RENDER(name) void name(thread_context *Thread, game_memory *Memory, game_input *Input, game_offscreen_buffer *Buffer)
typedef GAME_UPDATE_AND_RENDER(game_update_and_render);
I believe I understand the #define section of it.
It's basically so "GAME_UPDATE_AND_RENDER(game_update_and_render)" is changed by the compiler to "void game_update_and_render(thread_context *Thread, game_memory *Memory, game_input *Input, game_offscreen_buffer *Buffer)"
However, I don't entirely understand the purpose of the typedef. I am familiar with something like "typedef int8_t int8" but I'm not sure how "typedef GAME_UPDATE_AND_RENDER(game_update_and_render)" works. Would someone mind explaining what it changes? Thank you!