Fix T84539: cryptomatte metadata lost when using save buffers option
This commit is contained in:
@@ -1229,6 +1229,10 @@ void render_result_exr_file_begin(Render *re, RenderEngine *engine)
|
|||||||
/* end write of exr tile file, read back first sample */
|
/* end write of exr tile file, read back first sample */
|
||||||
void render_result_exr_file_end(Render *re, RenderEngine *engine)
|
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. */
|
/* Close EXR files. */
|
||||||
for (RenderResult *rr = re->result; rr; rr = rr->next) {
|
for (RenderResult *rr = re->result; rr; rr = rr->next) {
|
||||||
LISTBASE_FOREACH (RenderLayer *, rl, &rr->layers) {
|
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);
|
BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE);
|
||||||
render_result_free_list(&re->fullresult, re->result);
|
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 = 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);
|
BLI_rw_mutex_unlock(&re->resultmutex);
|
||||||
|
|
||||||
LISTBASE_FOREACH (RenderLayer *, rl, &re->result->layers) {
|
LISTBASE_FOREACH (RenderLayer *, rl, &re->result->layers) {
|
||||||
|
Reference in New Issue
Block a user