initial commit
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
#ifndef HYDRAENGINE
|
||||
#define HYDRAENGINE
|
||||
|
||||
#include "HydraObject.h"
|
||||
#include "../windowmanager/HydraRenderSettings.h"
|
||||
#include <GLMIncludes.h>
|
||||
|
||||
class HydraTaskScheduler;
|
||||
class HydraGameProxy;
|
||||
class HydraWindowManager;
|
||||
class HydraInputManager;
|
||||
class HydraRenderer;
|
||||
class HydraECS;
|
||||
class HydraActorManager;
|
||||
class HydraCamera;
|
||||
class HydraBufferManager;
|
||||
class HydraVertexBufferManager;
|
||||
class HydraMeshManager;
|
||||
class HydraMeshSystem;
|
||||
class HydraRenderSystem;
|
||||
class HydraTransformSystem;
|
||||
class HydraMaterialSystem;
|
||||
class HydraPipeline;
|
||||
class HydraTextureBufferManager;
|
||||
class HydraMaterialBufferManager;
|
||||
class HydraLightBufferManager;
|
||||
class HydraLightSystem;
|
||||
|
||||
class CLASS_DEFINE HydraEngine : public HydraObject
|
||||
{
|
||||
public:
|
||||
static HydraEngine *GetInstance()
|
||||
{
|
||||
static HydraEngine instance;
|
||||
return &instance;
|
||||
}
|
||||
HydraTaskScheduler* const TaskScheduler();
|
||||
void InitialiseGame(HydraGameProxy* game);
|
||||
void Start();
|
||||
|
||||
bool KeyPressed(HYDRA_KEY_CODES key);
|
||||
glm::vec2 MouseChange();
|
||||
void Exit();
|
||||
|
||||
HydraWindowManager* const WindowManager();
|
||||
HydraRenderSettings RenderSettings();
|
||||
HydraInputManager* const InputManager();
|
||||
HydraRenderer* const Renderer();
|
||||
HydraECS* const ECS();
|
||||
HydraActorManager* const ActorManager();
|
||||
HydraCamera* const Camera();
|
||||
HydraBufferManager* const BufferManager();
|
||||
HydraVertexBufferManager* const VertexBufferManager();
|
||||
HydraMeshManager* const MeshManager();
|
||||
HydraPipeline* const Pipeline();
|
||||
HydraTextureBufferManager* const TextureBufferManager();
|
||||
HydraMaterialBufferManager* const MaterialBufferManager();
|
||||
HydraLightBufferManager* const LightBufferManager();
|
||||
void PossessPlayer(HydraID actor_id);
|
||||
HydraID GetPossessedPlayer();
|
||||
float GetDeltaT();
|
||||
uint32_t GetLightCount();
|
||||
private:
|
||||
void _CreateManagers();
|
||||
void _InitialiseManagers();
|
||||
void _InitialiseSystems();
|
||||
void _UpdateSystems();
|
||||
void _GameLoop();
|
||||
void _Shutdown();
|
||||
|
||||
class HydraGameProxy* m_game = nullptr;
|
||||
HydraTaskScheduler* m_task_scheduler = nullptr;
|
||||
HydraWindowManager* m_window_manager = nullptr;
|
||||
HydraInputManager* m_input_manager = nullptr;
|
||||
HydraRenderer* m_renderer = nullptr;
|
||||
HydraECS* m_ecs = nullptr;
|
||||
HydraActorManager* m_actor_manager = nullptr;
|
||||
HydraCamera* m_camera = nullptr;
|
||||
HydraBufferManager* m_buffer_manager = nullptr;
|
||||
HydraVertexBufferManager* m_vertex_buffer_manager = nullptr;
|
||||
HydraMeshManager* m_mesh_manager = nullptr;
|
||||
HydraRenderSettings m_render_settings;
|
||||
HydraPipeline* m_pipeline = nullptr;
|
||||
HydraPipeline* m_deferred_pipeline = nullptr;
|
||||
HydraTextureBufferManager* m_texture_buffer_manager = nullptr;
|
||||
HydraMaterialBufferManager* m_material_buffer_manager = nullptr;
|
||||
HydraLightBufferManager* m_light_buffer_manager = nullptr;
|
||||
|
||||
std::shared_ptr<HydraMeshSystem> m_mesh_system;
|
||||
std::shared_ptr<HydraTransformSystem> m_transform_system;
|
||||
std::shared_ptr<HydraRenderSystem> m_render_system;
|
||||
std::shared_ptr<HydraMaterialSystem> m_material_system;
|
||||
std::shared_ptr<HydraLightSystem> m_light_system;
|
||||
|
||||
bool m_running = true;
|
||||
float m_delta_t = 0.0f;
|
||||
float m_fixed_delta_t = 0.0f;
|
||||
HydraID m_possessed_actor_id = INVALID_HYDRA_ID;
|
||||
|
||||
};
|
||||
|
||||
#endif /* HYDRAENGINE */
|
||||
Reference in New Issue
Block a user