Fix T52653: Render output of linked scenes conflicts with other scenes with the same name

Authored by Sergey Sharybin (sergey) on Sep 12 2017, 8:31 AM.



The issue was caused by render result identifier only consist of scene name,
which could indeed cause conflicts.

On the one hand, there are quite some areas in Blender where we need identifier
to be unique to properly address things. Usually this is required for sub-data
of IDs, like bones. On another hand, it's not that hard to support this
particular case and avoid possible frustration.

The idea is, we add library name to render identifier for linked scenes. We use
library name and not pointer so we preserve render results through undo stack.

Diff Detail

rB Blender

Picky - the name is the relative path from lib->parent, it could be better to use filepath - the absolute path, or lib-> which is shorter and going to be unique (within the session), although current they're all named "Lib" prefix.

Does this impact the name used for temporary files? if so this might hit filename length limits.

Use lib-> to avoid possible relative paths in names

Generally seems fine as long as:

  • The scene pointer is guaranteed not to be stored and used between undo steps.
  • This doesn't cause really long names for temp files (I didn't apply the patch, just mentioning here incase)

@Campbell Barton (campbellbarton), somehow don't feel like using full absolute paths.. SO made it lib-> Wouldn't worry if it doesn't have full human-readable name.

As for the temporary names: as far as i know this change shouldn't matter for that, at least not for Save Buffers options. Not sure where else we use temp files?

+1 for using lib-> instead of lib->name, that was my main concern (due to length) when first read the patch. Can’t see anything else bad here, so patch LGTM.

This revision is now accepted and ready to land.Sep 12 2017, 10:14 AM

Rebasing on top of master before landing

Missed that in previous update

Excellent, i can't even update patches anymore

Sorry for spam.

This revision was automatically updated to reflect the committed changes.