Vixen
dd8b0a81
csharp
public record class TextureOp

One operation: what it runs, what it reads, what it writes, and with what.

Read the guide page for this →

Remarks

An op has no resolution of its own, and that is deliberate. Its resolution is the resolution of the image it writes — so two ops writing one image cannot disagree about how big it is, and a plan cannot be built in which they do. Doc 48 § M1 lists the resolution as a field of the op; carrying it twice is a second place for it to be wrong.

Inputs are indices into Images, bound in order to the sampled textures the kernel declares, in binding order. A kernel therefore names its inputs positionally and an op never spells a binding.

Fields and properties (10)

  • public required string Kernel

    The op's name — Blend, Blur, Levels.

  • public ITextureCpuOperation? Cpu

    The operation to run on the CPU, or for a compute dispatch.

  • public int? EmittedForExtent

    The longer side, in texels, of the image this op was emitted for — set only when the op's existence in the list is a function of the bake resolution.

  • public bool ReadsOtherExtents

    Whether this op means to read an image of a size other than the one it writes.

  • public ImmutableArray<int> OtherExtentInputs

    Which inputs ReadsOtherExtents speaks for, as indices into Images. Empty is every input.

  • public bool DependsOnEveryTexel

    Whether one texel of this op's output depends on every texel of its input.

  • public required int Output

    The image it writes, as an index into Images.

  • public ImmutableArray<int> Inputs

    The images it reads, in the order the kernel declares its textures.

  • public ImmutableArray<TextureParameter> Parameters

    The numbers it hands the kernel.

  • public uint? Identity

    What the front end that emitted this op calls it, for a seed an insertion cannot move.

Methods (1)

  • public TextureParameter? Find(string name)

    The value of one parameter, or when the op does not carry it.

Used by (101, showing 40)

  • BakedMaterialImageTestsVixen.Graphics.Golden.Tests
  • BlurNodeVixen.Editor.TextureGraph
  • ChannelShuffleNodeVixen.Editor.TextureGraph
  • CropNodeVixen.Editor.TextureGraph
  • CurveNodeVixen.Editor.TextureGraph
  • ExternalCompoundTestsVixen.Editor.Texturing.Tests
  • GradientMapNodeVixen.Editor.TextureGraph
  • GrayscaleNodeVixen.Editor.TextureGraph
  • HslNodeVixen.Editor.TextureGraph
  • InvertNodeVixen.Editor.TextureGraph
  • LayerStackCompileTestsVixen.Editor.Texturing.Tests
  • LayerStackDifferentialVixen.Editor.Texturing.Tests
  • LayerStackEditingTestsVixen.Editor.Texturing.Tests
  • LevelsNodeVixen.Editor.TextureGraph
  • MarkedOpsVixen.Editor.TextureGraph.Tests
  • MaskStackTestsVixen.Editor.Texturing.Tests
  • MetalReflectanceNodeVixen.Editor.TextureGraph
  • MirrorNodeVixen.Editor.TextureGraph
  • NormalToHeightOperationVixen.Editor.TextureGraph
  • PaintWiringTestsVixen.Editor.Texturing.Tests
  • PixelProcessorNodeVixen.Editor.TextureGraph
  • ResampleNodeVixen.Editor.TextureGraph
  • TextureAdjustVixen.Editor.TextureGraph
  • TextureAdjustTestsVixen.Editor.TextureGraph.Tests
  • TextureAnalysisVixen.Editor.TextureGraph
  • TextureAnalysisDeviceTestsVixen.Editor.TextureGraph.Tests
  • TextureAnalysisKernelTestsVixen.Editor.TextureGraph.Tests
  • TextureAspectDeviceTestsVixen.Editor.TextureGraph.Tests
  • TextureBlendVixen.Editor.TextureGraph
  • TextureBudgetDeviceTestsVixen.Editor.TextureGraph.Tests
  • TextureCeilingTestsVixen.Editor.TextureGraph.Tests
  • TextureColourDeviceTestsVixen.Editor.TextureGraph.Tests
  • TextureColourKernelTestsVixen.Editor.TextureGraph.Tests
  • TextureCompoundLibraryTestsVixen.Editor.TextureGraph.Tests
  • TextureCpuOpDeviceTestsVixen.Editor.TextureGraph.Tests
  • TextureCpuOperationsVixen.Editor.TextureGraph
  • TextureEmitterVixen.Editor.TextureGraph
  • TextureEvaluationCostTestsVixen.Editor.TextureGraph.Tests
  • TextureExpressionCostTestsVixen.Editor.TextureGraph.Tests
  • TextureExternalUsageTestsVixen.Editor.TextureGraph.Tests