diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2021-09-30 13:02:13 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2021-09-30 13:05:53 +0300 |
commit | 2ac637eef0bca10080c2a475b48a791fe1299570 (patch) | |
tree | fba0d29a4c7067d045fbf175018b01014a14a27d /source/blender/draw/intern/draw_view_data.cc | |
parent | 84bba36429acbafc1bccd0b0b22e99e73b48398b (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.cc | 11 |
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(); |