Difference between revisions of "love.graphics.setStencil"

m
m
Line 2: Line 2:
 
Defines or releases a stencil for the drawing operations.
 
Defines or releases a stencil for the drawing operations.
  
The passed function draws to the stencil instead of the screen, creating an image with transparent and opaque pixel. While active, it is used to test where pixel will be drawn or discarded.
+
The passed function draws to the stencil instead of the screen, creating an image with transparent and opaque pixels. While active, it is used to test where pixels will be drawn or discarded.
  
 
Calling the function without arguments releases the active stencil.
 
Calling the function without arguments releases the active stencil.

Revision as of 23:35, 16 October 2012

Available since LÖVE 0.8.0
This function is not supported in earlier versions.

Defines or releases a stencil for the drawing operations.

The passed function draws to the stencil instead of the screen, creating an image with transparent and opaque pixels. While active, it is used to test where pixels will be drawn or discarded.

Calling the function without arguments releases the active stencil.

Function

Synopsis

love.graphics.setStencil( stencilFunction )

Arguments

function stencilFunction
Function that draws the stencil.

Returns

Nothing.

Function

Synopsis

love.graphics.setStencil( )

Arguments

None.

Returns

Nothing.

Notes

Releases the active stencil.

Examples

Drawing circles masked by a rectangle

myStencilFunction = function()
   love.graphics.rectangle("fill", 225, 200, 350, 300)
end

myStencil = love.graphics.newStencil(myStencilFunction)

love.graphics.setStencil(myStencil)

love.graphics.setColor(255, 0, 0, 120)
love.graphics.circle("fill", 300, 300, 150, 50)
love.graphics.setColor(0, 255, 0, 120)
love.graphics.circle("fill", 500, 300, 150, 50)
love.graphics.setColor(0, 0, 255, 120)
love.graphics.circle("fill", 400, 400, 150, 50)

Drawing a circle with a hole

myStencilFunction = function()
   love.graphics.circle("fill", 400, 300, 50)
end

myStencil = love.graphics.newStencil(myStencilFunction)

love.graphics.setInvertedStencil(myStencil)
love.graphics.circle("fill", 400, 300, 150)

Drawing two masked triangles with different colors

myStencilFunction = function()
   love.graphics.circle("fill", 400, 300, 60, 25)
end

myStencil = love.graphics.newStencil(myStencilFunction)

love.graphics.setStencil(myStencil)
love.graphics.setColor(155, 0, 128)
love.graphics.triangle("fill", 400, 200, 486, 350, 314, 350)


love.graphics.setInvertedStencil(myStencil)
love.graphics.setColor(144, 214, 128)
love.graphics.triangle("fill", 400, 200, 486, 350, 314, 350)

See Also


Other Languages