diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-12-03 12:31:16 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-12-03 12:31:16 +0400 |
commit | 94f85c3c72ec0c117808b6cf87b554ae9b1e772a (patch) | |
tree | 0b28c53d8b490eb611c94823e9f8130ee6c2672c /source/blender/editors/render | |
parent | 0526fcf13f6a05aa1a5b32549f566e8c15c47d5e (diff) |
Fix #33371: blender freezing in material draw mode.
When FBO failed in a particular way it could cause the opengl draw buffer to be
set wrong, effectively disabling all opengl drawing. The FBO error was caused
by cycles GLSL materials with no nodes that would still use blender internal
materials, which caused issues with lamp shadow buffers FBO.
This also fixes a GLSL refresh issue when switching render engines.
Diffstat (limited to 'source/blender/editors/render')
-rw-r--r-- | source/blender/editors/render/render_update.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c index e9fbb3a0885..1ed1cbb2c6b 100644 --- a/source/blender/editors/render/render_update.c +++ b/source/blender/editors/render/render_update.c @@ -156,12 +156,16 @@ void ED_render_engine_changed(Main *bmain) /* on changing the render engine type, clear all running render engines */ bScreen *sc; ScrArea *sa; + Scene *scene; for (sc = bmain->screen.first; sc; sc = sc->id.next) for (sa = sc->areabase.first; sa; sa = sa->next) ED_render_engine_area_exit(sa); RE_FreePersistentData(); + + for (scene = bmain->scene.first; scene; scene = scene->id.next) + ED_render_id_flush_update(bmain, &scene->id); } /***************************** Updates *********************************** |