This allows actors to perform draw commands in TickDraw(), even if it’s not exactly what we want in the future.undefined
| @@ -432,6 +432,8 @@ void TickerData::DrawThreadTick() | |||||
| scene.EnableDisplay(); | scene.EnableDisplay(); | ||||
| Renderer::Get(idx)->Clear(ClearMask::All); | Renderer::Get(idx)->Clear(ClearMask::All); | ||||
| scene.pre_render(data->deltatime); | |||||
| /* Tick objects for the draw loop */ | /* Tick objects for the draw loop */ | ||||
| for (int g = Entity::DRAWGROUP_BEGIN; g < Entity::DRAWGROUP_END && !data->quit /* Stop as soon as required */; ++g) | for (int g = Entity::DRAWGROUP_BEGIN; g < Entity::DRAWGROUP_END && !data->quit /* Stop as soon as required */; ++g) | ||||
| { | { | ||||
| @@ -470,6 +472,8 @@ void TickerData::DrawThreadTick() | |||||
| /* Do the render step */ | /* Do the render step */ | ||||
| scene.render(data->deltatime); | scene.render(data->deltatime); | ||||
| scene.post_render(data->deltatime); | |||||
| /* Disable display */ | /* Disable display */ | ||||
| scene.DisableDisplay(); | scene.DisableDisplay(); | ||||
| } | } | ||||
| @@ -622,12 +622,11 @@ void Scene::DisableDisplay() | |||||
| data->m_display->Disable(); | data->m_display->Disable(); | ||||
| } | } | ||||
| /* Render everything that the scene contains */ | |||||
| void Scene::render(float seconds) | |||||
| { | |||||
| bool do_pp = true; | |||||
| static bool do_pp = true; | |||||
| gpu_marker("Start Render"); | |||||
| void Scene::pre_render(float seconds) | |||||
| { | |||||
| gpu_marker("Pre Render"); | |||||
| /* First render into the offline buffer */ | /* First render into the offline buffer */ | ||||
| if (do_pp) | if (do_pp) | ||||
| @@ -644,12 +643,23 @@ void Scene::render(float seconds) | |||||
| } | } | ||||
| Renderer::Get()->Clear(ClearMask::Color | ClearMask::Depth); | Renderer::Get()->Clear(ClearMask::Color | ClearMask::Depth); | ||||
| // FIXME: get rid of the delta time argument | |||||
| render_primitives(); | |||||
| render_tiles(); | |||||
| render_lines(seconds); | |||||
| } | } | ||||
| } | |||||
| /* Render everything that the scene contains */ | |||||
| void Scene::render(float seconds) | |||||
| { | |||||
| gpu_marker("Render"); | |||||
| // FIXME: get rid of the delta time argument | |||||
| render_primitives(); | |||||
| render_tiles(); | |||||
| render_lines(seconds); | |||||
| } | |||||
| void Scene::post_render(float seconds) | |||||
| { | |||||
| gpu_marker("Post Render"); | |||||
| if (do_pp) | if (do_pp) | ||||
| { | { | ||||
| @@ -251,7 +251,9 @@ public: | |||||
| void EnableDisplay(); | void EnableDisplay(); | ||||
| void DisableDisplay(); | void DisableDisplay(); | ||||
| void pre_render(float seconds); | |||||
| void render(float seconds); | void render(float seconds); | ||||
| void post_render(float seconds); | |||||
| private: | private: | ||||
| void render_primitives(); | void render_primitives(); | ||||