reworked the general update strategy interface

This commit is contained in:
2021-04-28 19:38:25 +02:00
parent b8a5cd7cf4
commit efad254193
53 changed files with 756 additions and 889 deletions

View File

@ -43,7 +43,7 @@ OpenGLRenderer::OpenGLRenderer(void) {
OpenGLRenderer::~OpenGLRenderer(void) {
}
bool OpenGLRenderer::enable(Engine& engine) {
bool OpenGLRenderer::enable(Engine& engine, std::vector<UpdateStrategies::TaskInfo>& task_array) {
if (!engine.tryService<SDLService>()) {
LOG_ERROR("OpenGLRenderer requires SDLService");
return false;
@ -126,6 +126,14 @@ bool OpenGLRenderer::enable(Engine& engine) {
}
}
{ // add task
task_array.push_back(
UpdateStrategies::TaskInfo{"OpenGLRenderer::render"}
.phase(UpdateStrategies::update_phase_t::POST)
.fn([this](Engine& e){ this->render(e); })
);
}
return true;
}
@ -138,17 +146,6 @@ void OpenGLRenderer::disable(Engine&) {
MM::ResourceManager<MM::OpenGL::Texture>::ref().clear();
}
std::vector<UpdateStrategies::UpdateCreationInfo> OpenGLRenderer::registerUpdates(void) {
return {
{
"OpenGLRenderer::render"_hs,
"OpenGLRenderer::render",
[this](Engine& e){ this->render(e); },
UpdateStrategies::update_phase_t::POST
}
};
}
void OpenGLRenderer::render(Engine& engine) {
ZoneScopedN("MM::Services::OpenGLRenderer::render");