mirror of
https://github.com/storytold/effectcraft.git
synced 2026-11-09 18:01:35 -06:00
#1743: check final storage overflow destinations for queued outputs
This commit is contained in:
@@ -59,7 +59,8 @@ pub trait Exporter: Send + Sync {
|
||||
fn formats(&self) -> Vec<OutputFormat>;
|
||||
/// Whether Skip Existing Files preserves sequence frames written by earlier items. Exporters
|
||||
/// without an existence check (such as memory sinks) must keep the conservative default.
|
||||
fn supports_skip_existing(&self) -> bool {
|
||||
/// The check must cover the final destination for these settings, including any overflow.
|
||||
fn supports_skip_existing(&self, _settings: &effectcraft_project::render_queue::RenderSettings) -> bool {
|
||||
false
|
||||
}
|
||||
/// Render and write one item (blocking). `progress(done, total)` returns `false` to cancel;
|
||||
@@ -500,7 +501,7 @@ impl Session {
|
||||
let refused = self.check_outputs(&items);
|
||||
// Two outputs of this job on one file: the render would replace its own output, so it is
|
||||
// refused before anything is written (the items refused above take no part).
|
||||
if let Some(refusal) = crate::output_guard::duplicate_refusal(&self.duplicate_outputs(&items, &refused)) {
|
||||
if let Some(refusal) = crate::output_guard::duplicate_refusal(&self.duplicate_outputs(&items, &refused)?) {
|
||||
return Err(refusal);
|
||||
}
|
||||
items.retain(|modules| modules.first().is_none_or(|(it, _)| !refused.iter().any(|r| r.item == it.id)));
|
||||
|
||||
Reference in New Issue
Block a user