SpriteBatch:attachAttribute
Available since LÖVE 0.10.0
This function is not supported in earlier versions.
Attaches a per-vertex attribute from a Mesh onto this SpriteBatch, for use when drawing. This can be combined with a Shader to augment a SpriteBatch with per-vertex or additional per-sprite information instead of just having per-sprite colors.
Each sprite in a SpriteBatch has 4 vertices in the following order: top-left, bottom-left, top-right, bottom-right. The index returned by SpriteBatch:add (and used by SpriteBatch:set) can be multiplied by 4 to determine the first vertex in a specific sprite.
Function
Synopsis
SpriteBatch:attachAttribute( name, mesh )
Arguments
string name
- The name of the vertex attribute to attach.
Mesh mesh
- The Mesh to get the vertex attribute from.
Returns
Nothing.
Notes
If a Mesh wasn't created with a custom vertex format, it will have 3 vertex attributes named VertexPosition
, VertexTexCoord
, and VertexColor
. If vertex attributes with those names are attached to the SpriteBatch, it will override the SpriteBatch's sprite positions, texture coordinates, and sprite colors, respectively.
Custom named attributes can be accessed in a vertex shader by declaring them as attribute vec4 MyCustomAttributeName;
at the top-level of the vertex shader code. The name must match what was specified in the Mesh's vertex format and in the name
argument of SpriteBatch:attachAttribute.
A Mesh must have at least 4 * SpriteBatch:getBufferSize vertices in order to be attachable to a SpriteBatch.
Please login to continue.