Refactor Widget loading.

This commit is contained in:
2021-07-08 21:34:18 +02:00
parent be4e63046a
commit 5385b7ede7
15 changed files with 176 additions and 131 deletions

View File

@@ -61,8 +61,8 @@ Controller::Controller() : m_gameWindow(std::unique_ptr<Window>(new Window))
Controller::~Controller()
{
for (auto it = m_shaderPrograms.begin(); it != m_shaderPrograms.end(); it++) {
delete *it;
for (auto program : m_shaderPrograms) {
delete program;
}
delete m_world;
@@ -72,6 +72,12 @@ Controller::~Controller()
delete m_gameEventHandler;
}
Controller &Controller::instance()
{
static Controller s_instance;
return s_instance;
}
void Controller::run()
{
updateExposure(getShaderProgramByName("postProcessingProgram"));
@@ -212,22 +218,17 @@ void Controller::updateExposure(ShaderProgram *shaderProgram)
ShaderProgram *Controller::getShaderProgramByName(const std::string &name)
{
for (auto it = m_shaderPrograms.begin(); it != m_shaderPrograms.end(); it++) {
if ((*it)->getUniqueName() == name) {
return *it;
}
}
std::cout << "[Warning] ShaderProgram could not be found by name \"" << name << "\"" << std::endl;
return nullptr;
return getShaderProgramByName(name, m_shaderPrograms);
}
ShaderProgram *Controller::getShaderProgramByName(std::vector<ShaderProgram *> shaderPrograms, const std::string &name)
ShaderProgram *Controller::getShaderProgramByName(const std::string &name, std::vector<ShaderProgram *> shaderPrograms)
{
for (auto it = shaderPrograms.begin(); it != shaderPrograms.end(); it++) {
if ((*it)->getUniqueName() == name) {
return *it;
for (auto program : shaderPrograms) {
if (program->getUniqueName() == name) {
return program;
}
}
std::cout << "[Warning] ShaderProgram could not be found by name \"" << name << "\"" << std::endl;
return nullptr;
}