Fix T84539: cryptomatte metadata lost when using save buffers option

This commit is contained in:
Brecht Van Lommel 2021-01-20 13:27:27 +01:00
parent 10d2cbfa36
commit 1f691050e5
Notes: blender-bot 2023-02-14 07:39:46 +01:00
Referenced by issue #84539, Safe Buffers checkbox disables cryptomatte metadata
1 changed files with 5 additions and 0 deletions

View File

@ -1229,6 +1229,10 @@ void render_result_exr_file_begin(Render *re, RenderEngine *engine)
/* end write of exr tile file, read back first sample */
void render_result_exr_file_end(Render *re, RenderEngine *engine)
{
/* Preserve stamp data. */
struct StampData *stamp_data = re->result->stamp_data;
re->result->stamp_data = NULL;
/* Close EXR files. */
for (RenderResult *rr = re->result; rr; rr = rr->next) {
LISTBASE_FOREACH (RenderLayer *, rl, &rr->layers) {
@ -1243,6 +1247,7 @@ void render_result_exr_file_end(Render *re, RenderEngine *engine)
BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE);
render_result_free_list(&re->fullresult, re->result);
re->result = render_result_new(re, &re->disprect, RR_USE_MEM, RR_ALL_LAYERS, RR_ALL_VIEWS);
re->result->stamp_data = stamp_data;
BLI_rw_mutex_unlock(&re->resultmutex);
LISTBASE_FOREACH (RenderLayer *, rl, &re->result->layers) {