Difference between revisions of "love.graphics.setCanvas"

m
m (Follow general wiki styling)
Line 2: Line 2:
 
Captures drawing operations to a [[Canvas]]
 
Captures drawing operations to a [[Canvas]]
 
== Function ==
 
== Function ==
 +
Sets the render target to a specified [[Canvas]]. All drawing operations until the next ''love.graphics.setCanvas'' call will be redirected to the [[Canvas]] and not shown on the screen.
 
=== Synopsis ===
 
=== Synopsis ===
 
<source lang="lua">
 
<source lang="lua">
Line 10: Line 11:
 
=== Returns ===
 
=== Returns ===
 
Nothing.
 
Nothing.
=== Notes ===
 
Sets the render target to a specified [[Canvas]]. All drawing operations until the next ''love.graphics.setCanvas'' call will be redirected to the [[Canvas]] and not shown on the screen.
 
  
 
== Function ==
 
== Function ==
 +
Resets the render target to the screen, i.e. re-enables drawing to the screen.
 
=== Synopsis ===
 
=== Synopsis ===
 
<source lang="lua">
 
<source lang="lua">
Line 22: Line 22:
 
=== Returns ===
 
=== Returns ===
 
Nothing.
 
Nothing.
=== Notes ===
 
Resets the render target to the screen, i.e. re-enables drawing to the screen.
 
  
 
== Function ==
 
== Function ==
 
{{newin|[[0.9.0]]|090|type=variant}}
 
{{newin|[[0.9.0]]|090|type=variant}}
 +
Sets the render target to multiple simultaneous [[Canvas]]es. All drawing operations until the next ''love.graphics.setCanvas'' call will be redirected to the specified canvases and not shown on the screen.
 
=== Synopsis ===
 
=== Synopsis ===
 
<source lang="lua">
 
<source lang="lua">
Line 38: Line 37:
 
Nothing.
 
Nothing.
 
=== Notes ===
 
=== Notes ===
Sets the render target to multiple simultaneous [[Canvas]]es. All drawing operations until the next ''love.graphics.setCanvas'' call will be redirected to the specified canvases and not shown on the screen.
 
 
 
Normally the same thing will be drawn on each canvas, but that can be changed if a [[Shader|pixel shader]] is used with the [[love.graphics.newShader#Pixel_Shader_Function|<code>effects</code> function]] instead of the regular <code>effect</code>.
 
Normally the same thing will be drawn on each canvas, but that can be changed if a [[Shader|pixel shader]] is used with the [[love.graphics.newShader#Pixel_Shader_Function|<code>effects</code> function]] instead of the regular <code>effect</code>.
  

Revision as of 12:45, 8 September 2016

Available since LÖVE 0.8.0
It has been renamed from love.graphics.setRenderTarget.

Captures drawing operations to a Canvas

Function

Sets the render target to a specified Canvas. All drawing operations until the next love.graphics.setCanvas call will be redirected to the Canvas and not shown on the screen.

Synopsis

love.graphics.setCanvas( canvas )

Arguments

Canvas canvas
The new target.

Returns

Nothing.

Function

Resets the render target to the screen, i.e. re-enables drawing to the screen.

Synopsis

love.graphics.setCanvas( )

Arguments

None.

Returns

Nothing.

Function

Available since LÖVE 0.9.0
This variant is not supported in earlier versions.

Sets the render target to multiple simultaneous Canvases. All drawing operations until the next love.graphics.setCanvas call will be redirected to the specified canvases and not shown on the screen.

Synopsis

love.graphics.setCanvas( canvas1, canvas2, ... )

Arguments

Canvas canvas1
The first render target.
Canvas canvas2
The second render target.
Canvas ...
More canvases.

Returns

Nothing.

Notes

Normally the same thing will be drawn on each canvas, but that can be changed if a pixel shader is used with the effects function instead of the regular effect.

All canvas arguments must have the same widths and heights and the same texture type. Not all computers which support Canvases will support multiple render targets. If love.graphics.isSupported("multicanvas") returns true, at least 4 simultaneously active canvases are supported.

Examples

Drawing to a canvas

function love.load()
    -- create canvas
    canvas = love.graphics.newCanvas()

    -- direct drawing operations to the canvas
    love.graphics.setCanvas(canvas)

    -- draw colored square to canvas
    love.graphics.setColor(230,240,120)
    love.graphics.rectangle('fill',0,0,100,100)

    -- re-enable drawing to the main screen
    love.graphics.setCanvas()
end

function love.draw()
    -- draw scaled canvas to screen
    love.graphics.setColor(255,255,255)
    love.graphics.draw(canvas, 200,100, 0, .5,.5)
end

See Also


Other Languages