Packagestarling.rendering
Classpublic class VertexDataFormat
InheritanceVertexDataFormat Inheritance Object

Describes the memory layout of VertexData instances, as used for every single vertex.

The format is set up via a simple String. Here is an example:

      format = VertexDataFormat.fromString("position:float2, color:bytes4");

This String describes two attributes: "position" and "color". The keywords after the colons depict the format and size of the data that each attribute uses; in this case, we store two floats for the position (taking up the x- and y-coordinates) and four bytes for the color. (The available formats are the same as those defined in the Context3DVertexBufferFormat class: float1, float2, float3, float4, bytes4.)

You cannot create a VertexData instance with its constructor; instead, you must use the static fromString-method. The reason for this behavior: the class maintains a cache, and a call to fromString will return an existing instance if an equivalent format has already been created in the past. That saves processing time and memory.

VertexDataFormat instances are immutable, i.e. they are solely defined by their format string and cannot be changed later.

See also

VertexData


Public Properties
 PropertyDefined By
  formatString : String
[read-only] Returns the normalized format string.
VertexDataFormat
  numAttributes : int
[read-only] The number of attributes per vertex.
VertexDataFormat
  vertexSize : int
[read-only] The size (in bytes) of each vertex.
VertexDataFormat
  vertexSizeIn32Bits : int
[read-only] The size (in 32 bit units) of each vertex.
VertexDataFormat
Public Methods
 MethodDefined By
  
Don't use the constructor, but call VertexDataFormat.fromString instead.
VertexDataFormat
  
extend(format:String):VertexDataFormat
Creates a new VertexDataFormat instance by appending the given format string to the current instance's format.
VertexDataFormat
  
[static] Creates a new VertexDataFormat instance from the given String, or returns one from the cache (if an equivalent String has already been used before).
VertexDataFormat
  
getFormat(attrName:String):String
Returns the format of a certain vertex attribute, identified by its name.
VertexDataFormat
  
getName(attrIndex:int):String
Returns the name of the attribute at the given position within the vertex format.
VertexDataFormat
  
getOffset(attrName:String):int
Returns the offset (in bytes) of an attribute within a vertex.
VertexDataFormat
  
getOffsetIn32Bits(attrName:String):int
Returns the offset (in 32 bit units) of an attribute within a vertex.
VertexDataFormat
  
getSize(attrName:String):int
Returns the size of a certain vertex attribute in bytes.
VertexDataFormat
  
getSizeIn32Bits(attrName:String):int
Returns the size of a certain vertex attribute in 32 bit units.
VertexDataFormat
  
hasAttribute(attrName:String):Boolean
Indicates if the format contains an attribute with the given name.
VertexDataFormat
  
setVertexBufferAt(index:int, buffer:VertexBuffer3D, attrName:String):void
Specifies which vertex data attribute corresponds to a single vertex shader program input.
VertexDataFormat
  
toString():String
Returns the normalized format string.
VertexDataFormat
Property Detail
formatStringproperty
formatString:String  [read-only]

Returns the normalized format string.


Implementation
    public function get formatString():String
numAttributesproperty 
numAttributes:int  [read-only]

The number of attributes per vertex.


Implementation
    public function get numAttributes():int
vertexSizeproperty 
vertexSize:int  [read-only]

The size (in bytes) of each vertex.


Implementation
    public function get vertexSize():int
vertexSizeIn32Bitsproperty 
vertexSizeIn32Bits:int  [read-only]

The size (in 32 bit units) of each vertex.


Implementation
    public function get vertexSizeIn32Bits():int
Constructor Detail
VertexDataFormat()Constructor
public function VertexDataFormat()

Don't use the constructor, but call VertexDataFormat.fromString instead. This allows for efficient format caching.

Method Detail
extend()method
public function extend(format:String):VertexDataFormat

Creates a new VertexDataFormat instance by appending the given format string to the current instance's format.

Parameters

format:String

Returns
VertexDataFormat
fromString()method 
public static function fromString(format:String):VertexDataFormat

Creates a new VertexDataFormat instance from the given String, or returns one from the cache (if an equivalent String has already been used before).

Parameters

format:String — Describes the attributes of each vertex, consisting of a comma-separated list of attribute names and their format, e.g.:
"position:float2, texCoords:float2, color:bytes4"

This set of attributes will be allocated for each vertex, and they will be stored in exactly the given order.

  • Names are used to access the specific attributes of a vertex. They are completely arbitrary.
  • The available formats can be found in the Context3DVertexBufferFormat class in the flash.display3D package.
  • Both names and format strings are case-sensitive.
  • Always use bytes4 for color data that you want to access with the respective methods.
  • Furthermore, the attribute names of colors should include the string "color" (or the uppercase variant). If that's the case, the "alpha" channel of the color will automatically be initialized with "1.0" when the VertexData object is created or resized.

Returns
VertexDataFormat
getFormat()method 
public function getFormat(attrName:String):String

Returns the format of a certain vertex attribute, identified by its name. Typical values: float1, float2, float3, float4, bytes4.

Parameters

attrName:String

Returns
String
getName()method 
public function getName(attrIndex:int):String

Returns the name of the attribute at the given position within the vertex format.

Parameters

attrIndex:int

Returns
String
getOffset()method 
public function getOffset(attrName:String):int

Returns the offset (in bytes) of an attribute within a vertex.

Parameters

attrName:String

Returns
int
getOffsetIn32Bits()method 
public function getOffsetIn32Bits(attrName:String):int

Returns the offset (in 32 bit units) of an attribute within a vertex.

Parameters

attrName:String

Returns
int
getSize()method 
public function getSize(attrName:String):int

Returns the size of a certain vertex attribute in bytes.

Parameters

attrName:String

Returns
int
getSizeIn32Bits()method 
public function getSizeIn32Bits(attrName:String):int

Returns the size of a certain vertex attribute in 32 bit units.

Parameters

attrName:String

Returns
int
hasAttribute()method 
public function hasAttribute(attrName:String):Boolean

Indicates if the format contains an attribute with the given name.

Parameters

attrName:String

Returns
Boolean
setVertexBufferAt()method 
public function setVertexBufferAt(index:int, buffer:VertexBuffer3D, attrName:String):void

Specifies which vertex data attribute corresponds to a single vertex shader program input. This wraps the Context3D-method with the same name, automatically replacing attrName with the corresponding values for bufferOffset and format.

Parameters

index:int
 
buffer:VertexBuffer3D
 
attrName:String

toString()method 
public function toString():String

Returns the normalized format string.

Returns
String