Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2021-09-30 13:02:13 +0300
committerClément Foucault <foucault.clem@gmail.com>2021-09-30 13:05:53 +0300
commit2ac637eef0bca10080c2a475b48a791fe1299570 (patch)
treefba0d29a4c7067d045fbf175018b01014a14a27d /source/blender/draw/intern/draw_view_data.cc
parent84bba36429acbafc1bccd0b0b22e99e73b48398b (diff)
Viewport Compositor: Move `rv3d->render_engine` to `DRWRenderScene`
This allows multiple instances of external render engines per viewport. Allowing them to be combined by the compositor. Many things needed to be ported to the draw manager since it is the only one that can know what is inside the `DRWRenderScene` and can iterate over all running engines.
Diffstat (limited to 'source/blender/draw/intern/draw_view_data.cc')
-rw-r--r--source/blender/draw/intern/draw_view_data.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/draw/intern/draw_view_data.cc b/source/blender/draw/intern/draw_view_data.cc
index d793e07b0e6..e49a9e07829 100644
--- a/source/blender/draw/intern/draw_view_data.cc
+++ b/source/blender/draw/intern/draw_view_data.cc
@@ -248,6 +248,17 @@ void DRW_view_data_use_engine(DRWViewData *view_data, DrawEngineType *engine_typ
view_data->enabled_engines.append(engine);
}
+/* Enable all engines that have been previously enabled. */
+void DRW_view_data_use_engines_with_data(DRWViewData *view_data)
+{
+ for (ViewportEngineData &engine : view_data->engines) {
+ bool has_data = engine.fbl != nullptr;
+ if (has_data) {
+ view_data->enabled_engines.append(&engine);
+ }
+ }
+}
+
void DRW_view_data_reset(DRWViewData *view_data)
{
view_data->enabled_engines.clear();