Options
Menu

Class RegisterPool

RegisterPool is used by the shader compilers process to keep track of which registers of a certain type are currently used and should not be allowed to be written to. Either entire registers can be requested and locked, or single components (x, y, z, w) of a single register. It is used by ShaderRegisterCache to track usages of individual register types.

see

away.materials.ShaderRegisterCache

Hierarchy

  • RegisterPool

Index

Constructors

constructor

  • new RegisterPool(regName: string, regCount: number, persistent?: boolean): RegisterPool
  • Creates a new RegisterPool object.

    Parameters

    • regName: string

      The base name of the register type ("ft" for fragment temporaries, "vc" for vertex constants, etc)

    • regCount: number

      The amount of available registers of this type.

    • Default value persistent: boolean = true

      Whether or not registers, once reserved, can be freed again. For example, temporaries are not persistent, but constants are.

    Returns RegisterPool

Methods

addUsage

  • Marks a register as used, so it cannot be retrieved. The register won't be able to be used until removeUsage has been called usageCount times again.

    Parameters

    • register: ShaderRegisterElement

      The register to mark as used.

    • usageCount: number

      The amount of usages to add.

    Returns void

dispose

  • dispose(): void
  • Disposes any resources used by the current RegisterPool object.

    Returns void

hasRegisteredRegs

  • hasRegisteredRegs(): boolean
  • Indicates whether or not any registers are in use.

    Returns boolean

removeUsage

  • Removes a usage from a register. When usages reach 0, the register is freed again.

    Parameters

    Returns void

requestFreeRegComponent

  • Retrieve a single vector component that's still available.

    Returns ShaderRegisterElement

requestFreeVectorReg

  • Retrieve an entire vector register that's still available.

    Returns ShaderRegisterElement

Generated using TypeDoc