Files
inferno-cpu/src/inferno.cpp
2019-08-20 22:36:57 +01:00

76 lines
1.3 KiB
C++

#include "inferno.hpp"
#include "common.hpp"
#include "display/display.hpp"
#include "core/renderer.hpp"
InfernoEngine::InfernoEngine() {
m_initialized = false;
}
void InfernoEngine::SetMode(OperationMode mode) {
if (!m_initialized) {
// warn =
return;
}
m_mode = mode;
}
bool InfernoEngine::InitWindow(int xRes, int yRes) {
if (m_initialized) {
// warn =
return true;
}
if (m_display == nullptr)
m_display = new Display();
bool status = m_display->InitVideoDisplay("Inferno Engine", xRes, yRes);
if (!status) {
return false;
}
status = m_display->InitImGui();
if (!status) {
return false;
}
m_renderer = new Renderer(m_mode);
if (!m_renderer) {
return false;
}
m_renderer->Init(m_display);
m_initialized = true;
return true;
}
void InfernoEngine::SetScene(Scene* scene) {
m_scene = scene;
}
void InfernoEngine::Ready() {
if (!m_scene) return;
m_renderer->InitRender(m_scene);
if (!m_initialized) m_initialized = true;
}
void InfernoEngine::Render() {
m_renderer->Render(m_display->Framebuffer);
}
std::string InfernoEngine::LastError() {
return "";
}
std::string InfernoEngine::LastWarn() {
return "";
}
InfernoEngine::~InfernoEngine() {
}