Packageaway3d.materials.utils
Classpublic class ShaderRegisterCache
InheritanceShaderRegisterCache Inheritance Object

ShaderRegister Cache provides the usage management system for all registers during shading compilation.



Public Properties
 PropertyDefined By
  fragmentOutputRegister : ShaderRegisterElement
[read-only] The fragment output register.
ShaderRegisterCache
  numUsedFragmentConstants : uint
[read-only] The amount of used fragment constant registers.
ShaderRegisterCache
  numUsedStreams : uint
[read-only] The amount of used vertex streams.
ShaderRegisterCache
  numUsedTextures : uint
[read-only]
ShaderRegisterCache
  numUsedVertexConstants : uint
[read-only] The amount of used vertex constant registers.
ShaderRegisterCache
  vertexAttributesOffset : uint
Indicates the start index from which to retrieve vertex attributes.
ShaderRegisterCache
  vertexConstantOffset : uint
Indicates the start index from which to retrieve vertex constants.
ShaderRegisterCache
Public Methods
 MethodDefined By
  
Create a new ShaderRegisterCache object.
ShaderRegisterCache
  
addFragmentTempUsages(register:ShaderRegisterElement, usageCount:uint):void
Marks a fragment temporary register as used, so it cannot be retrieved.
ShaderRegisterCache
  
addVertexTempUsages(register:ShaderRegisterElement, usageCount:uint):void
Marks a vertex temporary register as used, so it cannot be retrieved.
ShaderRegisterCache
  
dispose():void
ShaderRegisterCache
  
Retrieve an available fragment constant register
ShaderRegisterCache
  
Retrieve a single component from a fragment temporary register that's still available.
ShaderRegisterCache
  
Retrieve an entire fragment temporary register that's still available.
ShaderRegisterCache
  
Retrieve an available texture register
ShaderRegisterCache
  
Retrieve an available varying register
ShaderRegisterCache
  
Retrieve an available vertex attribute register
ShaderRegisterCache
  
Retrieve an available vertex constant register
ShaderRegisterCache
  
Retrieve a single component from a vertex temporary register that's still available.
ShaderRegisterCache
  
Retrieve an entire vertex temporary register that's still available.
ShaderRegisterCache
  
Removes a usage from a fragment temporary register.
ShaderRegisterCache
  
Removes a usage from a vertex temporary register.
ShaderRegisterCache
  
reset():void
Resets all registers.
ShaderRegisterCache
Property Detail
fragmentOutputRegisterproperty
fragmentOutputRegister:ShaderRegisterElement  [read-only]

The fragment output register.


Implementation
    public function get fragmentOutputRegister():ShaderRegisterElement
numUsedFragmentConstantsproperty 
numUsedFragmentConstants:uint  [read-only]

The amount of used fragment constant registers.


Implementation
    public function get numUsedFragmentConstants():uint
numUsedStreamsproperty 
numUsedStreams:uint  [read-only]

The amount of used vertex streams.


Implementation
    public function get numUsedStreams():uint
numUsedTexturesproperty 
numUsedTextures:uint  [read-only]


Implementation
    public function get numUsedTextures():uint
numUsedVertexConstantsproperty 
numUsedVertexConstants:uint  [read-only]

The amount of used vertex constant registers.


Implementation
    public function get numUsedVertexConstants():uint
vertexAttributesOffsetproperty 
vertexAttributesOffset:uint

Indicates the start index from which to retrieve vertex attributes.


Implementation
    public function get vertexAttributesOffset():uint
    public function set vertexAttributesOffset(value:uint):void
vertexConstantOffsetproperty 
vertexConstantOffset:uint

Indicates the start index from which to retrieve vertex constants.


Implementation
    public function get vertexConstantOffset():uint
    public function set vertexConstantOffset(value:uint):void
Constructor Detail
ShaderRegisterCache()Constructor
public function ShaderRegisterCache()

Create a new ShaderRegisterCache object.

Method Detail
addFragmentTempUsages()method
public function addFragmentTempUsages(register:ShaderRegisterElement, usageCount:uint):void

Marks a fragment temporary register as used, so it cannot be retrieved.

Parameters

register:ShaderRegisterElement — The register to mark as used.
 
usageCount:uint — The amount of usages to add.

addVertexTempUsages()method 
public function addVertexTempUsages(register:ShaderRegisterElement, usageCount:uint):void

Marks a vertex temporary register as used, so it cannot be retrieved.

Parameters

register:ShaderRegisterElement — The register to mark as used.
 
usageCount:uint — The amount of usages to add.

dispose()method 
public function dispose():void

getFreeFragmentConstant()method 
public function getFreeFragmentConstant():ShaderRegisterElement

Retrieve an available fragment constant register

Returns
ShaderRegisterElement
getFreeFragmentSingleTemp()method 
public function getFreeFragmentSingleTemp():ShaderRegisterElement

Retrieve a single component from a fragment temporary register that's still available.

Returns
ShaderRegisterElement
getFreeFragmentVectorTemp()method 
public function getFreeFragmentVectorTemp():ShaderRegisterElement

Retrieve an entire fragment temporary register that's still available.

Returns
ShaderRegisterElement
getFreeTextureReg()method 
public function getFreeTextureReg():ShaderRegisterElement

Retrieve an available texture register

Returns
ShaderRegisterElement
getFreeVarying()method 
public function getFreeVarying():ShaderRegisterElement

Retrieve an available varying register

Returns
ShaderRegisterElement
getFreeVertexAttribute()method 
public function getFreeVertexAttribute():ShaderRegisterElement

Retrieve an available vertex attribute register

Returns
ShaderRegisterElement
getFreeVertexConstant()method 
public function getFreeVertexConstant():ShaderRegisterElement

Retrieve an available vertex constant register

Returns
ShaderRegisterElement
getFreeVertexSingleTemp()method 
public function getFreeVertexSingleTemp():ShaderRegisterElement

Retrieve a single component from a vertex temporary register that's still available.

Returns
ShaderRegisterElement
getFreeVertexVectorTemp()method 
public function getFreeVertexVectorTemp():ShaderRegisterElement

Retrieve an entire vertex temporary register that's still available.

Returns
ShaderRegisterElement
removeFragmentTempUsage()method 
public function removeFragmentTempUsage(register:ShaderRegisterElement):void

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

Parameters

register:ShaderRegisterElement — The register for which to remove a usage.

removeVertexTempUsage()method 
public function removeVertexTempUsage(register:ShaderRegisterElement):void

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

Parameters

register:ShaderRegisterElement — The register for which to remove a usage.

reset()method 
public function reset():void

Resets all registers.