Files
UwU-Engine/Core/Game/GameInstance.h
T

37 lines
621 B
C++

#pragma once
#include <atomic>
#include <memory>
class CoreInstance;
class World;
class RenderEngine;
#define GENERATE_FACTORY_GAME_INSTANCE(Class) \
GameInstance* GameFactory(CoreInstance& core) { return new Class(core); }
class GameInstance
{
CoreInstance& core;
World* world = nullptr;
std::unique_ptr<RenderEngine> render_engine_;
std::atomic<bool> is_running = true;
// Create a window
// Render
// Pull events
void start();
public:
void quit();
// Init vulkan
GameInstance(CoreInstance& core);
virtual ~GameInstance();
World* GetWorld() const { return world; }
friend class CoreInstance;
};