void ED_render_engine_changed(Main *bmain) { /* on changing the render engine type, clear all running render engines */ bScreen *sc; ScrArea *sa; 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); }
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(bmain, sa); RE_FreePersistentData(); for (scene = bmain->scene.first; scene; scene = scene->id.next) ED_render_id_flush_update(bmain, &scene->id); }
void ED_render_scene_update_pre(Main *bmain, Scene *scene, bool time) { /* Blender internal might access to the data which is gonna to be freed * by the scene update functions. This applies for example to simulation * data like smoke and fire. */ if (time && !BKE_scene_use_new_shading_nodes(scene)) { bScreen *sc; ScrArea *sa; for (sc = bmain->screen.first; sc; sc = sc->id.next) { for (sa = sc->areabase.first; sa; sa = sa->next) { ED_render_engine_area_exit(bmain, sa); } } } }
void ED_render_engine_changed(Main *bmain) { /* on changing the render engine type, clear all running render engines */ bScreen *sc; ScrArea *sa; Scene *scene; Material *ma; 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); /* reset texture painting. Sending one dependency graph signal for any material should * refresh any texture slots */ ma = bmain->mat.first; if (ma) { DAG_id_tag_update(&ma->id, 0); } }