SpriteBatch:addLayer
| Available since LÖVE 11.0 |
| This function is not supported in earlier versions. |
Adds a sprite to a batch created with an Array Texture.
Function
Adds a layer of the SpriteBatch's Array Texture.
Synopsis
spriteindex = SpriteBatch:addLayer( layerindex, x, y, r, sx, sy, ox, oy, kx, ky )
Arguments
number layerindex- The index of the layer to use for this sprite.
number x (0)- The position to draw the sprite (x-axis).
number y (0)- The position to draw the sprite (y-axis).
number r (0)- Orientation (radians).
number sx (1)- Scale factor (x-axis).
number sy (sx)- Scale factor (y-axis).
number ox (0)- Origin offset (x-axis).
number oy (0)- Origin offset (y-axis).
number kx (0)- Shearing factor (x-axis).
number ky (0)- Shearing factor (y-axis).
Returns
number spriteindex- The index of the added sprite, for use with SpriteBatch:set or SpriteBatch:setLayer.
Function
Adds a layer of the SpriteBatch's Array Texture using the specified Quad.
Synopsis
spriteindex = SpriteBatch:addLayer( layerindex, quad, x, y, r, sx, sy, ox, oy, kx, ky )
Arguments
number layerindex- The index of the layer to use for this sprite.
Quad quad- The subsection of the texture's layer to use when drawing the sprite.
number x (0)- The position to draw the sprite (x-axis).
number y (0)- The position to draw the sprite (y-axis).
number r (0)- Orientation (radians).
number sx (1)- Scale factor (x-axis).
number sy (sx)- Scale factor (y-axis).
number ox (0)- Origin offset (x-axis).
number oy (0)- Origin offset (y-axis).
number kx (0)- Shearing factor (x-axis).
number ky (0)- Shearing factor (y-axis).
Returns
number spriteindex- The index of the added sprite, for use with SpriteBatch:set or SpriteBatch:setLayer.
Notes
The specified layer index overrides any layer index set on the Quad via Quad:setLayer.
Function
Adds a layer of the SpriteBatch's Array Texture using the specified Transform.
Synopsis
spriteindex = SpriteBatch:addLayer( layerindex, transform )
Arguments
number layerindex- The index of the layer to use for this sprite.
Transform transform- A transform object.
Returns
number spriteindex- The index of the added sprite, for use with SpriteBatch:set or SpriteBatch:setLayer.
Function
Adds a layer of the SpriteBatch's Array Texture using the specified Quad and Transform.
Synopsis
spriteindex = SpriteBatch:addLayer( layerindex, quad, transform )
Arguments
number layerindex- The index of the layer to use for this sprite.
Quad quad- The subsection of the texture's layer to use when drawing the sprite.
Transform transform- A transform object.
Returns
number spriteindex- The index of the added sprite, for use with SpriteBatch:set or SpriteBatch:setLayer.
Notes
The specified layer index overrides any layer index set on the Quad via Quad:setLayer.
Notes
In order to use an Array Texture or other non-2D texture types as the main texture in a custom Shader, the void effect() variant must be used in the pixel shader, and MainTex must be declared as an ArrayImage or sampler2DArray like so: uniform ArrayImage MainTex;.
Examples
Draw multiple layers of an Array Image in a SpriteBatch
function love.load() local sprites = {"sprite1.png", "sprite2.png"} image = love.graphics.newArrayImage(sprites) batch = love.graphics.newSpriteBatch(image) batch:addLayer(1, 50, 50) batch:addLayer(2, 250, 50) end function love.draw() love.graphics.draw(batch) end
Use a custom shader
shader = love.graphics.newShader[[ uniform ArrayImage MainTex; void effect() { // Texel uses a third component of the texture coordinate for the layer index, when an Array Texture is passed in. // love sets up the texture coordinates to contain the layer index specified in love.graphics.drawLayer, when // rendering the Array Texture. love_PixelColor = Texel(MainTex, VaryingTexCoord.xyz) * VaryingColor; } ]] function love.load() local sprites = {"sprite1.png", "sprite2.png"} image = love.graphics.newArrayImage(sprites) batch = love.graphics.newSpriteBatch(image) batch:addLayer(1, 50, 50) batch:addLayer(2, 250, 50) end function love.draw() love.graphics.setShader(shader) love.graphics.draw(batch) end
See Also
- SpriteBatch
- SpriteBatch:setLayer
- love.graphics.newArrayImage
- love.graphics.newCanvas
- love.graphics.newShader
- TextureType
Other Languages
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info