Vixen
02b45cc4
csharp
public sealed class EffectStore

A set of pre-compiled variants held in memory, indexed by key.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

What a shipping build has instead of a compiler. An EffectBundle comes out of content as a flat list; this indexes it once and answers in a dictionary lookup thereafter.

A key baked twice is refused rather than resolved by last-writer-wins. Two records under one key means the build enumerated the same variant along two paths and compiled it twice — which is either wasted build time or, if the two differ, a bundle whose behaviour depends on file order.

Fields and properties (2)

  • public int Count

    How many variants it holds.

  • public IEnumerable<EffectKey> Keys

    Every key it can answer, in no particular order.

Methods (5)

  • public EffectStore()

    An empty store, for a host that adds variants as it goes.

  • public EffectStore(EffectBundle bundle)

    A store over everything a bundle holds.

  • public void Add(EffectData effect)

    Adds a variant.

  • public EffectBundle ToBundle()

    The bundle this store would bake, ordered so two builds of the same set match.

  • public EffectData? TryGet(EffectKey key)

    The variant for a key, or null when this source does not have it.

Used by (8)

  • AppGraphicsVixen.App.Hosting
  • ContentMountVixen.App.Hosting
  • EffectCacheTestsVixen.Shaders.Tests
  • ContentMountTestsVixen.App.Tests
  • EffectBundleBuilderVixen.ShaderCompiler
  • EffectCompilerTestsVixen.ShaderCompiler.Tests
  • VixenCommandTestsVixen.Cli.Tests
  • ZeroRuntimeCompilationTestsVixen.ShaderCompiler.Tests