Changeset View
Changeset View
Standalone View
Standalone View
source/blender/render/intern/source/external_engine.c
| Show First 20 Lines • Show All 719 Lines • ▼ Show 20 Lines | int RE_engine_render(Render *re, int do_all) | ||||
| /* Clear UI drawing locks. */ | /* Clear UI drawing locks. */ | ||||
| if (re->draw_lock) { | if (re->draw_lock) { | ||||
| re->draw_lock(re->dlh, 0); | re->draw_lock(re->dlh, 0); | ||||
| } | } | ||||
| if (type->render) { | if (type->render) { | ||||
| FOREACH_VIEW_LAYER_TO_RENDER_BEGIN(re, view_layer_iter) | FOREACH_VIEW_LAYER_TO_RENDER_BEGIN(re, view_layer_iter) | ||||
| { | { | ||||
| bool stop_render = false; | |||||
| if (re->draw_lock) { | if (re->draw_lock) { | ||||
| re->draw_lock(re->dlh, 1); | re->draw_lock(re->dlh, 1); | ||||
| } | } | ||||
| ViewLayer *view_layer = BLI_findstring(&re->scene->view_layers, view_layer_iter->name, offsetof(ViewLayer, name)); | ViewLayer *view_layer = BLI_findstring(&re->scene->view_layers, view_layer_iter->name, offsetof(ViewLayer, name)); | ||||
| for (RenderView *render_view = re->result->views.first; | |||||
| render_view != NULL; | |||||
| render_view = render_view->next) | |||||
| { | |||||
| engine_depsgraph_init(engine, view_layer); | engine_depsgraph_init(engine, view_layer); | ||||
| RE_engine_active_view_set(engine, render_view->name); | |||||
| if (type->update) { | if (type->update) { | ||||
| type->update(engine, re->main, engine->depsgraph); | type->update(engine, re->main, engine->depsgraph); | ||||
| } | } | ||||
| if (re->draw_lock) { | if (re->draw_lock) { | ||||
| re->draw_lock(re->dlh, 0); | re->draw_lock(re->dlh, 0); | ||||
| } | } | ||||
| type->render(engine, engine->depsgraph); | type->render(engine, engine->depsgraph); | ||||
| /* Grease pencil render over previous render result. | /* Grease pencil render over previous render result. | ||||
| * | * | ||||
| * NOTE: External engine might have been requested to free its | * NOTE: External engine might have been requested to free its | ||||
| * dependency graph, which is only allowed if there is no grease | * dependency graph, which is only allowed if there is no grease | ||||
| * pencil (pipeline is taking care of that). | * pencil (pipeline is taking care of that). | ||||
| */ | */ | ||||
| if (!RE_engine_test_break(engine) && engine->depsgraph != NULL) { | if (!RE_engine_test_break(engine) && engine->depsgraph != NULL) { | ||||
| DRW_render_gpencil(engine, engine->depsgraph); | DRW_render_gpencil(engine, engine->depsgraph); | ||||
| } | } | ||||
| engine_depsgraph_free(engine); | engine_depsgraph_free(engine); | ||||
| if (RE_engine_test_break(engine)) { | if (RE_engine_test_break(engine)) { | ||||
| stop_render = true; | |||||
| break; | |||||
| } | |||||
| } | |||||
| if (stop_render) { | |||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| FOREACH_VIEW_LAYER_TO_RENDER_END; | FOREACH_VIEW_LAYER_TO_RENDER_END; | ||||
| } | } | ||||
| engine->tile_x = 0; | engine->tile_x = 0; | ||||
| engine->tile_y = 0; | engine->tile_y = 0; | ||||
| ▲ Show 20 Lines • Show All 78 Lines • Show Last 20 Lines | |||||