/* For cache, makes exact copy of render result */ bool render_result_exr_file_cache_read(Render *re) { char str[FILE_MAXFILE + MAX_ID_NAME + MAX_ID_NAME + 100] = ""; char *root = U.render_cachedir; RE_FreeRenderResult(re->result); re->result = render_result_new(re, &re->disprect, 0, RR_USE_MEM, RR_ALL_LAYERS, RR_ALL_VIEWS); /* First try cache. */ render_result_exr_file_cache_path(re->scene, root, str); printf("read exr cache file: %s\n", str); if (!render_result_exr_file_read_path(re->result, NULL, str)) { printf("cannot read: %s\n", str); return false; } return true; }
/* only for temp buffer, makes exact copy of render result */ int render_result_exr_file_read_sample(Render *re, int sample) { RenderLayer *rl; char str[FILE_MAXFILE + MAX_ID_NAME + MAX_ID_NAME + 100] = ""; bool success = true; RE_FreeRenderResult(re->result); re->result = render_result_new(re, &re->disprect, 0, RR_USE_MEM, RR_ALL_LAYERS, RR_ALL_VIEWS); for (rl = re->result->layers.first; rl; rl = rl->next) { render_result_exr_file_path(re->scene, rl->name, sample, str); printf("read exr tmp file: %s\n", str); if (!render_result_exr_file_read_path(re->result, rl, str)) { printf("cannot read: %s\n", str); success = false; } } return success; }
/* only for temp buffer files, makes exact copy of render result */ int render_result_exr_file_read(Render *re, int sample) { RenderLayer *rl; char str[FILE_MAX]; int success = TRUE; RE_FreeRenderResult(re->result); re->result = render_result_new(re, &re->disprect, 0, RR_USE_MEM, RR_ALL_LAYERS); for (rl = re->result->layers.first; rl; rl = rl->next) { render_result_exr_file_path(re->scene, rl->name, sample, str); printf("read exr tmp file: %s\n", str); if (!render_result_exr_file_read_path(re->result, rl, str)) { printf("cannot read: %s\n", str); success = FALSE; } } return success; }