Changeset View
Changeset View
Standalone View
Standalone View
source/blender/render/intern/source/render_result.c
| Context not available. | |||||
| #include <string.h> | #include <string.h> | ||||
| #include <errno.h> | #include <errno.h> | ||||
| #include "CLG_log.h" | |||||
| #include "MEM_guardedalloc.h" | #include "MEM_guardedalloc.h" | ||||
| #include "BLI_utildefines.h" | #include "BLI_utildefines.h" | ||||
| Context not available. | |||||
| #include "render_result.h" | #include "render_result.h" | ||||
| #include "render_types.h" | #include "render_types.h" | ||||
| static CLG_LogRef LOG = { "render.result" }; | |||||
| /********************************** Free *************************************/ | /********************************** Free *************************************/ | ||||
| static void render_result_views_free(RenderResult *res) | static void render_result_views_free(RenderResult *res) | ||||
| Context not available. | |||||
| int nr; | int nr; | ||||
| if (re->result == NULL) { | if (re->result == NULL) { | ||||
| printf("pop render result error; no current result!\n"); | CLOG_ERROR(&LOG, "pop render result error; no current result!"); | ||||
| return; | return; | ||||
| } | } | ||||
| Context not available. | |||||
| render_result_create_all_passes(engine, re, rl); | render_result_create_all_passes(engine, re, rl); | ||||
| render_result_exr_file_path(re->scene, rl->name, rr->sample_nr, str); | render_result_exr_file_path(re->scene, rl->name, rr->sample_nr, str); | ||||
| printf("write exr tmp file, %dx%d, %s\n", rr->rectx, rr->recty, str); | CLOG_INFO(&LOG, 1, "write exr tmp file, %dx%d, %s", rr->rectx, rr->recty, str); | ||||
| IMB_exrtile_begin_write(rl->exrhandle, str, 0, rr->rectx, rr->recty, re->partx, re->party); | IMB_exrtile_begin_write(rl->exrhandle, str, 0, rr->rectx, rr->recty, re->partx, re->party); | ||||
| } | } | ||||
| } | } | ||||
| Context not available. | |||||
| render_result_create_all_passes(engine, re, rl); | render_result_create_all_passes(engine, re, rl); | ||||
| render_result_exr_file_path(re->scene, rl->name, sample, str); | render_result_exr_file_path(re->scene, rl->name, sample, str); | ||||
| printf("read exr tmp file: %s\n", str); | CLOG_INFO(&LOG, 1, "read exr tmp file: %s", str); | ||||
| if (!render_result_exr_file_read_path(re->result, rl, str)) { | if (!render_result_exr_file_read_path(re->result, rl, str)) { | ||||
| printf("cannot read: %s\n", str); | CLOG_ERROR(&LOG, "cannot read: %s", str); | ||||
| success = false; | success = false; | ||||
| } | } | ||||
| } | } | ||||
| Context not available. | |||||
| int rectx, recty; | int rectx, recty; | ||||
| if (IMB_exr_begin_read(exrhandle, filepath, &rectx, &recty) == 0) { | if (IMB_exr_begin_read(exrhandle, filepath, &rectx, &recty) == 0) { | ||||
| printf("failed being read %s\n", filepath); | CLOG_ERROR(&LOG, "failed begin read %s", filepath); | ||||
| IMB_exr_close(exrhandle); | IMB_exr_close(exrhandle); | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| if (rr == NULL || rectx != rr->rectx || recty != rr->recty) { | if (rr == NULL || rectx != rr->rectx || recty != rr->recty) { | ||||
| if (rr) | CLOG_ERROR(&LOG, "error in reading render result: %s", | ||||
| printf("error in reading render result: dimensions don't match\n"); | rr ? "dimensions don't match" : "NULL result pointer"); | ||||
| else | |||||
| printf("error in reading render result: NULL result pointer\n"); | |||||
| IMB_exr_close(exrhandle); | IMB_exr_close(exrhandle); | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| Context not available. | |||||
| char *root = U.render_cachedir; | char *root = U.render_cachedir; | ||||
| render_result_exr_file_cache_path(re->scene, root, str); | render_result_exr_file_cache_path(re->scene, root, str); | ||||
| printf("Caching exr file, %dx%d, %s\n", rr->rectx, rr->recty, str); | CLOG_INFO(&LOG, 1, "Caching exr file, %dx%d, %s", rr->rectx, rr->recty, str); | ||||
| RE_WriteRenderResult(NULL, rr, str, NULL, NULL, -1); | RE_WriteRenderResult(NULL, rr, str, NULL, NULL, -1); | ||||
| } | } | ||||
| Context not available. | |||||
| /* First try cache. */ | /* First try cache. */ | ||||
| render_result_exr_file_cache_path(re->scene, root, str); | render_result_exr_file_cache_path(re->scene, root, str); | ||||
| printf("read exr cache file: %s\n", str); | CLOG_INFO(&LOG, 1, "read exr cache file: %s", str); | ||||
| if (!render_result_exr_file_read_path(re->result, NULL, str)) { | if (!render_result_exr_file_read_path(re->result, NULL, str)) { | ||||
| printf("cannot read: %s\n", str); | CLOG_ERROR(&LOG, "cannot read: %s", str); | ||||
| return false; | return false; | ||||
| } | } | ||||
| return true; | return true; | ||||
| Context not available. | |||||