implement the exitstack inside the capture

This commit is contained in:
Kayla Man 2023-12-19 22:04:30 +08:00
parent 7dc19ec759
commit 008f78e6a0
2 changed files with 18 additions and 14 deletions

View file

@ -45,13 +45,20 @@ class ExtractPlayblast(publish.Extractor):
)
)
if preset["viewport_options"].get("reloadTextures"):
# Regenerate all UDIM tiles previews
lib.reload_all_udim_tile_previews()
# not supported by `capture`
preset["viewport_options"].pop("reloadTextures", None)
path = capture.capture(log=self.log, **preset)
self.log.debug("playblast path {}".format(path))
if preset["viewport_options"].get("textures"):
with ExitStack() as stack:
stack.enter_context(lib.material_loading_mode())
if preset["viewport_options"].get("reloadTextures"):
# Regenerate all UDIM tiles previews
lib.reload_all_udim_tile_previews()
# not supported by `capture`
preset["viewport_options"].pop("reloadTextures", None)
path = capture.capture(log=self.log, **preset)
self.log.debug("playblast path {}".format(path))
else:
preset["viewport_options"].pop("reloadTextures", None)
path = capture.capture(log=self.log, **preset)
self.log.debug("playblast path {}".format(path))
def process(self, instance):
self.log.debug("Extracting capture..")
@ -205,9 +212,6 @@ class ExtractPlayblast(publish.Extractor):
stack.enter_context(
panel_camera(instance.data["panel"], preset["camera"])
)
if preset["viewport_options"].get("textures"):
stack.enter_context(lib.material_loading_mode())
self._capture(preset)
# Restoring viewport options.

View file

@ -153,16 +153,16 @@ class ExtractThumbnail(publish.Extractor):
)
)
if preset["viewport_options"].get("reloadTextures"):
lib.reload_all_udim_tile_previews()
preset["viewport_options"].pop("reloadTextures", None)
if preset["viewport_options"].get("textures"):
with lib.material_loading_mode():
if preset["viewport_options"].get("reloadTextures"):
lib.reload_all_udim_tile_previews()
preset["viewport_options"].pop("reloadTextures", None)
path = capture.capture(**preset)
else:
self.log.debug(
"Reload Textures during playblasting is disabled.")
preset["viewport_options"].pop("reloadTextures", None)
path = capture.capture(**preset)
playblast = self._fix_playblast_output_path(path)