Changeset View
Changeset View
Standalone View
Standalone View
source/blender/render/intern/source/external_engine.c
| Show First 20 Lines • Show All 417 Lines • ▼ Show 20 Lines | if (!type->render) | ||||
| return 0; | return 0; | ||||
| if ((re->r.scemode & R_BUTS_PREVIEW) && !(type->flag & RE_USE_PREVIEW)) | if ((re->r.scemode & R_BUTS_PREVIEW) && !(type->flag & RE_USE_PREVIEW)) | ||||
| return 0; | return 0; | ||||
| if (do_all && !(type->flag & RE_USE_POSTPROCESS)) | if (do_all && !(type->flag & RE_USE_POSTPROCESS)) | ||||
| return 0; | return 0; | ||||
| if (!do_all && (type->flag & RE_USE_POSTPROCESS)) | if (!do_all && (type->flag & RE_USE_POSTPROCESS)) | ||||
| return 0; | return 0; | ||||
| /* Lock drawing in UI during data phase. */ | |||||
| if (re->draw_lock) { | |||||
| re->draw_lock(re->dlh, 1); | |||||
| } | |||||
| /* update animation here so any render layer animation is applied before | /* update animation here so any render layer animation is applied before | ||||
| * creating the render result */ | * creating the render result */ | ||||
| if ((re->r.scemode & (R_NO_FRAME_UPDATE | R_BUTS_PREVIEW)) == 0) { | if ((re->r.scemode & (R_NO_FRAME_UPDATE | R_BUTS_PREVIEW)) == 0) { | ||||
| unsigned int lay = re->lay; | unsigned int lay = re->lay; | ||||
| /* don't update layers excluded on all render layers */ | /* don't update layers excluded on all render layers */ | ||||
| if (type->flag & RE_USE_EXCLUDE_LAYERS) { | if (type->flag & RE_USE_EXCLUDE_LAYERS) { | ||||
| SceneRenderLayer *srl; | SceneRenderLayer *srl; | ||||
| Show All 37 Lines | if (re->result) | ||||
| render_result_free(re->result); | render_result_free(re->result); | ||||
| if ((type->flag & RE_USE_SAVE_BUFFERS) && (re->r.scemode & R_EXR_TILE_FILE)) | if ((type->flag & RE_USE_SAVE_BUFFERS) && (re->r.scemode & R_EXR_TILE_FILE)) | ||||
| savebuffers = RR_USE_EXR; | savebuffers = RR_USE_EXR; | ||||
| re->result = render_result_new(re, &re->disprect, 0, savebuffers, RR_ALL_LAYERS); | re->result = render_result_new(re, &re->disprect, 0, savebuffers, RR_ALL_LAYERS); | ||||
| } | } | ||||
| BLI_rw_mutex_unlock(&re->resultmutex); | BLI_rw_mutex_unlock(&re->resultmutex); | ||||
| if (re->result == NULL) | if (re->result == NULL) { | ||||
| /* Clear UI drawing locks. */ | |||||
| if (re->draw_lock) { | |||||
| re->draw_lock(re->dlh, 0); | |||||
| } | |||||
| return 1; | return 1; | ||||
| } | |||||
| /* set render info */ | /* set render info */ | ||||
| re->i.cfra = re->scene->r.cfra; | re->i.cfra = re->scene->r.cfra; | ||||
| BLI_strncpy(re->i.scene_name, re->scene->id.name + 2, sizeof(re->i.scene_name)); | BLI_strncpy(re->i.scene_name, re->scene->id.name + 2, sizeof(re->i.scene_name)); | ||||
| re->i.totface = re->i.totvert = re->i.totstrand = re->i.totlamp = re->i.tothalo = 0; | re->i.totface = re->i.totvert = re->i.totstrand = re->i.totlamp = re->i.tothalo = 0; | ||||
| /* render */ | /* render */ | ||||
| engine = re->engine; | engine = re->engine; | ||||
| Show All 21 Lines | int RE_engine_render(Render *re, int do_all) | ||||
| engine->tile_x = re->partx; | engine->tile_x = re->partx; | ||||
| engine->tile_y = re->party; | engine->tile_y = re->party; | ||||
| if (re->result->do_exr_tile) | if (re->result->do_exr_tile) | ||||
| render_result_exr_file_begin(re); | render_result_exr_file_begin(re); | ||||
| if (type->update) | if (type->update) | ||||
| type->update(engine, re->main, re->scene); | type->update(engine, re->main, re->scene); | ||||
| /* Clear UI drawing locks. */ | |||||
| if (re->draw_lock) { | |||||
| re->draw_lock(re->dlh, 0); | |||||
| } | |||||
| if (type->render) | if (type->render) | ||||
| type->render(engine, re->scene); | type->render(engine, re->scene); | ||||
| engine->tile_x = 0; | engine->tile_x = 0; | ||||
| engine->tile_y = 0; | engine->tile_y = 0; | ||||
| engine->flag &= ~RE_ENGINE_RENDERING; | engine->flag &= ~RE_ENGINE_RENDERING; | ||||
| render_result_free_list(&engine->fullresult, engine->fullresult.first); | render_result_free_list(&engine->fullresult, engine->fullresult.first); | ||||
| Show All 21 Lines | |||||