32 using WindowID = uint64_t;
35 static WindowID ID() {
return open_cpp_utils::unique_id<WindowID, T>(); }
38 static T* Open() { T* window; (window = Get<T>())->Open();
return window; }
41 static T* Close() { T* window; (window = Get<T>())->Close();
return window; }
46 T* window =
reinterpret_cast<T*
>(Windows[ID<T>()]);
47 if(window ==
nullptr) Windows[ID<T>()] = window =
new T();
51 static void Initialize();
53 static void Shutdown();
54 static void HandleEvents(SDL_Event* event);
57 inline static EditorWindow* Windows[MAX_EDITORS] {
nullptr };