#pragma once #include struct SharedWindowData { void* Handle = nullptr; int32_t WindowWidth = 1920; int32_t WindowHeight = 1080; }; struct FileChangeNotification { wchar_t FileName[128]{0}; }; struct SharedDevData { uint32_t ChangedShaderCount = 0; FileChangeNotification ChangedShaders[16]; }; struct GameData { void* PermanentStorage = nullptr; uint64_t PermanentStorageSize = 0; void* EntityStorage = nullptr; uint64_t EntityStorageSize = 0; }; struct SharedData { SharedDevData Dev; SharedWindowData Window; GameData Game; }; typedef void (*Startup)(SharedData& shared); typedef void (*Update)(); typedef void (*Shutdown)();