diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-11-08 17:56:56 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-11-08 18:01:02 +0300 |
commit | 11a53ec28a6abd9c0335c6f34b7862003574128b (patch) | |
tree | 6545b1537c7f6ab2f2d081c26f3b8603fc39bff6 /source/blender/editors/render/render_update.c | |
parent | d4370e2e0089be66f98210f6374031186dee4758 (diff) |
Fix T57689: world nodes / texture not updating for Eevee.
Only do GPU material updates through depsgraph evaluation now. This was
already happening for material, just missing for the world.
Diffstat (limited to 'source/blender/editors/render/render_update.c')
-rw-r--r-- | source/blender/editors/render/render_update.c | 31 |
1 files changed, 2 insertions, 29 deletions
diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c index 09d89e3b90f..c42eda678ba 100644 --- a/source/blender/editors/render/render_update.c +++ b/source/blender/editors/render/render_update.c @@ -58,8 +58,6 @@ #include "BKE_scene.h" #include "BKE_workspace.h" -#include "GPU_material.h" - #include "RE_engine.h" #include "RE_pipeline.h" @@ -73,8 +71,6 @@ #include "render_intern.h" // own include -extern Material defmaterial; - /***************************** Render Engines ********************************/ void ED_render_scene_update(const DEGEditorUpdateContext *update_ctx, int updated) @@ -244,22 +240,12 @@ static void material_changed(Main *UNUSED(bmain), Material *ma) { /* icons */ BKE_icon_changed(BKE_icon_id_ensure(&ma->id)); - - /* glsl */ - if (ma->id.recalc & ID_RECALC) { - if (!BLI_listbase_is_empty(&ma->gpumaterial)) { - GPU_material_free(&ma->gpumaterial); - } - } } static void lamp_changed(Main *UNUSED(bmain), Lamp *la) { /* icons */ BKE_icon_changed(BKE_icon_id_ensure(&la->id)); - - if (defmaterial.gpumaterial.first) - GPU_material_free(&defmaterial.gpumaterial); } static void texture_changed(Main *bmain, Tex *tex) @@ -271,15 +257,12 @@ static void texture_changed(Main *bmain, Tex *tex) /* icons */ BKE_icon_changed(BKE_icon_id_ensure(&tex->id)); - /* paint overlays */ for (scene = bmain->scene.first; scene; scene = scene->id.next) { + /* paint overlays */ for (view_layer = scene->view_layers.first; view_layer; view_layer = view_layer->next) { BKE_paint_invalidate_overlay_tex(scene, view_layer, tex); } - } - - /* find compositing nodes */ - for (scene = bmain->scene.first; scene; scene = scene->id.next) { + /* find compositing nodes */ if (scene->use_nodes && scene->nodetree) { for (node = scene->nodetree->nodes.first; node; node = node->next) { if (node->id == &tex->id) @@ -293,16 +276,6 @@ static void world_changed(Main *UNUSED(bmain), World *wo) { /* icons */ BKE_icon_changed(BKE_icon_id_ensure(&wo->id)); - - /* glsl */ - if (wo->id.recalc & ID_RECALC) { - if (!BLI_listbase_is_empty(&defmaterial.gpumaterial)) { - GPU_material_free(&defmaterial.gpumaterial); - } - if (!BLI_listbase_is_empty(&wo->gpumaterial)) { - GPU_material_free(&wo->gpumaterial); - } - } } static void image_changed(Main *bmain, Image *ima) |