2023-07-19 15:09:41 +00:00
|
|
|
@table(Name, NameLower, NameCaps, Type, Arguments) platform_functions:
|
|
|
|
{
|
2023-08-06 10:35:09 +00:00
|
|
|
{ Reserve reserve RESERVE `void *` `u64 Size` }
|
|
|
|
{ Release release RELEASE `void` `void *Pointer` }
|
|
|
|
{ Commit commit COMMIT `void` `void *Pointer, u64 Size` }
|
|
|
|
{ Decommit decommit DECOMMIT `void` `void *Pointer, u64 Size` }
|
|
|
|
{ OpenFile open_file OPEN_FILE `platform_file_handle` `string Path, platform_access_flags FileAccess` }
|
|
|
|
{ CloseFile close_file CLOSE_FILE `void` `platform_file_handle Handle` }
|
|
|
|
{ ReadFile read_file READ_FILE `void` `platform_file_handle Handle, void *Dest, u64 Offset, u64 Size` }
|
|
|
|
{ WriteFile write_file WRITE_FILE `void` `platform_file_handle Handle, void *Source, u64 Offset, u64 Size` }
|
|
|
|
{ GetFileSize get_file_size GET_FILE_SIZE `u64` `platform_file_handle Handle` }
|
|
|
|
{ SetCursor set_cursor SET_CURSOR `void` `platform_cursor Cursor` }
|
|
|
|
{ ToggleFullscreen toggle_fullscreen TOGGLE_FULLSCREEN `void` `void` }
|
|
|
|
{ ShowMessage show_message SHOW_MESSAGE `void` `string Message, platform_message_type Type` }
|
|
|
|
{ BeginFileIter begin_file_iter BEGIN_FILE_ITER `platform_file_iter *` `memory_arena *Arena, string Path` }
|
|
|
|
{ AdvanceFileIter advance_file_iter ADVANCE_FILE_ITER `b32` `memory_arena *Arena, platform_file_iter *Iter, platform_file_info *OutInfo` }
|
|
|
|
{ EndFileIter end_file_iter END_FILE_ITER `void` `platform_file_iter *Iter` }
|
2023-08-22 03:19:51 +00:00
|
|
|
{ SetClipboard set_clipboard SET_CLIPBOARD `void` `string String` }
|
|
|
|
{ GetClipboard get_clipboard GET_CLIPBOARD `string` `memory_arena *Arena` }
|
2023-07-19 15:09:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@table_gen
|
|
|
|
{
|
|
|
|
@expand(platform_functions s) `#define PLATFORM_$(s.NameCaps)(name) $(s.Type) name($(s.Arguments))`
|
|
|
|
}
|
|
|
|
|
|
|
|
@table_gen
|
|
|
|
{
|
|
|
|
@expand(platform_functions s) `typedef PLATFORM_$(s.NameCaps)(platform_$(s.NameLower));`
|
|
|
|
}
|
|
|
|
|
|
|
|
@table_gen
|
|
|
|
{
|
|
|
|
`struct platform_api`
|
|
|
|
`{`
|
|
|
|
@expand(platform_functions s) `platform_$(s.NameLower) *$(s.Name); `
|
|
|
|
`};`
|
|
|
|
}
|
|
|
|
|
|
|
|
@table_gen
|
|
|
|
{
|
|
|
|
`#define RegisterPlatformFunctions(PlatformName)\\`
|
|
|
|
@expand(platform_functions s) `Platform.$(s.Name) = PlatformName##_$(s.Name);\\`
|
|
|
|
}
|