SDEngine
Game Engine
Loading...
Searching...
No Matches
game_api.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <stddef.h>
4#include <stdint.h>
5
6// ── C API (for dlopen / shared library boundary) ──────────────────────────
7
8#ifdef __cplusplus
9extern "C" {
10#endif
11
12#define GAME_API_VERSION 1
13
15
16typedef void (*Game_OnLoadFn)(SD_Application* app, void* state);
17typedef void (*Game_OnUpdateFn)(SD_Application* app, void* state, float dt);
18typedef void (*Game_OnUnloadFn)(SD_Application* app, void* state);
19typedef void (*Game_OnReloadFn)(SD_Application* app, void* state);
20
29
30typedef GameAPI (*GetGameAPIFn)();
31
32#define GAME_GET_API_NAME "get_game_api"
33
34#ifdef __cplusplus
35} // extern "C"
36#endif
37
38//~ C++ API (for direct linking)
39
40#ifdef __cplusplus
41
42#include <SD/Application.hpp>
43
44namespace game {
45
46struct State {
47 sd::Scene* shared_scene = nullptr;
48 sd::Scene* another_scene = nullptr;
49 int version = 0;
50 U32 view_bit = 1;
51};
52
53void on_load(sd::Application& app, State& state);
54void on_update(sd::Application& app, State& state, float dt);
55void on_unload(sd::Application& app, State& state);
56void on_reload(sd::Application& app, State& state);
57
58} // namespace game
59
60#endif // __cplusplus
GameAPI(* GetGameAPIFn)()
Definition game_api.hpp:30
void(* Game_OnUpdateFn)(SD_Application *app, void *state, float dt)
Definition game_api.hpp:17
void(* Game_OnReloadFn)(SD_Application *app, void *state)
Definition game_api.hpp:19
void(* Game_OnUnloadFn)(SD_Application *app, void *state)
Definition game_api.hpp:18
struct SD_Application SD_Application
Definition game_api.hpp:14
void(* Game_OnLoadFn)(SD_Application *app, void *state)
Definition game_api.hpp:16
Definition game_api.hpp:21
Game_OnUpdateFn on_update
Definition game_api.hpp:25
size_t struct_size
Definition game_api.hpp:23
Game_OnLoadFn on_load
Definition game_api.hpp:24
uint32_t api_version
Definition game_api.hpp:22
Game_OnUnloadFn on_unload
Definition game_api.hpp:26
Game_OnReloadFn on_reload
Definition game_api.hpp:27
Definition Application.hpp:42
Definition Scene.hpp:9
consteval U64 type_id_of()
Definition type_id.hpp:6
std::uint32_t U32
Definition types.hpp:15