sealed class Tinman.Gpu.Semantic.TessellatePatchShaderAttribute

Derived from

TessellateShader abstract

A Tessellation Patch Shader (TP).

The method body must have a specific syntactic form, so that code generation may identify and separate the code for computing patch constant data and patch control-points:

[TessellatePatchShader(?, ?, ?, COUNT-IN, COUNT-OUT)]
public static OUTPUT NAME(INPUT[] points, ref PATCH data, int index)
  OUTPUT result;

  if (index == 0)
    // The code in the branch of the second statement ('if' at index 1) computes the
    // constant patch data by updating 'patch', using the 'input' data. Computation
    // must always include the tessellation factors and may optionally include
    // additional values.

  // The middle statements (indices 2..N-2) compute the data of the 'index'-th patch
  // control-point, using the 'input' and 'patch' data.

  // The last statement (index N-1) returns the data of the patch control-point.
  return result;

The placeholders have the following meaning:

  • COUNT-IN :
    The number of input control-points (from the vertex buffer).

    The number of output control-points (for the tessellation stage).

  • OUTPUT :
    A stage parameter struct that holds the index-th output control-point. Must be named 'result'.

  • NAME :
    The name of the tessellation shader.

  • INPUT :
    A stage parameter struct that holds an input control-point. Must be named 'points'.

  • PATCH :
    A stage parameter struct that holds constant patch data. Must be named 'data'.

Public / Constructors


public constructor TessellatePatchShaderAttribute → (5)

topology in : int32

See TessellateShaderAttribute.Topology.

primitive in : int32

See TessellateShaderAttribute.Primitive.

scheme in : int32

See TessellateShaderAttribute.Scheme.

countIn in : int32

See CountIn.

countOut in : int32

See CountOut.

Creates a new instance of TessellatePatchShader.

Public / Attributes


public readonly attribute CountIn → (int32)

The number of input control-points.


public readonly attribute CountOut → (int32)

The number of output control-points.