Skip to content

Commit

Permalink
feat: allow multiple filters to be bound to the same pass (#293)
Browse files Browse the repository at this point in the history
Closes: #289
  • Loading branch information
bdunderscore authored Jul 28, 2024
1 parent b5a6505 commit d322161
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 9 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- [#287] Added PublishedValue class
- [#288] Added support for passing ObjectRegistry to IRenderFilter
- [#289] Added support for binding multiple render filters to a single pass

### Fixed
- [#283] Cached proxy objects are visible after exiting play mode
Expand Down
9 changes: 3 additions & 6 deletions Editor/API/Fluent/Sequence/Sequence.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#region

using System;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
using nadena.dev.ndmf.model;
Expand Down Expand Up @@ -52,15 +51,13 @@ internal DeclaringPass(SolverPass pass, SolverContext solverContext, BuildPhase
_seq = seq;
}

public DeclaringPass PreviewingWith(IRenderFilter filter)
public DeclaringPass PreviewingWith(params IRenderFilter[] filters)
{
if (_pass.RenderFilter != null)
foreach (var filter in filters)
{
throw new InvalidOperationException("Render filter already set");
_pass.RenderFilters.Add(filter);
}

_pass.RenderFilter = filter;

return this;
}

Expand Down
3 changes: 2 additions & 1 deletion Editor/API/Model/SolverPass.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#region

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using nadena.dev.ndmf.preview;

Expand All @@ -23,7 +24,7 @@ internal class SolverPass

internal IImmutableSet<Type> RequiredExtensions { get; set; }
internal IImmutableSet<string> CompatibleExtensions { get; set; }
internal IRenderFilter RenderFilter { get; set; }
internal List<IRenderFilter> RenderFilters { get; } = new();

internal bool IsExtensionCompatible(Type ty)
{
Expand Down
4 changes: 2 additions & 2 deletions Editor/API/Solver/PluginResolver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -199,9 +199,9 @@ ImmutableList<ConcretePass> ToConcretePasses(BuildPhase phase, IEnumerable<Solve
concrete.Add(new ConcretePass(pass.Plugin, pass.Pass, toDeactivate.ToImmutableList(),
toActivate.ToImmutableList()));

if (pass.RenderFilter != null)
foreach (var filter in pass.RenderFilters)
{
PreviewSession.AddMutator(new SequencePoint(), pass.RenderFilter);
PreviewSession.AddMutator(new SequencePoint(), filter);
}
}

Expand Down

0 comments on commit d322161

Please sign in to comment.