Difference between revisions of "love.graphics.setCanvas"

m (Added one of the new 11.0 variants of setCanvas)
Line 25: Line 25:
 
== 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.
+
Sets the render target to multiple simultaneous [[TextureType|2D]] [[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 40: Line 40:
  
 
All canvas arguments must have the same widths and heights and the same [[TextureMode|texture type]]. Not all computers which support Canvases will support multiple render targets. If [[love.graphics.isSupported|love.graphics.isSupported("multicanvas")]] returns true, at least 4 simultaneously active canvases are supported.
 
All canvas arguments must have the same widths and heights and the same [[TextureMode|texture type]]. Not all computers which support Canvases will support multiple render targets. If [[love.graphics.isSupported|love.graphics.isSupported("multicanvas")]] returns true, at least 4 simultaneously active canvases are supported.
 +
 +
== Function ==
 +
{{newin|[[11.0]]|110|type=variant}}
 +
Sets the render target to the specified [[TextureType|layer/slice]] and [[Texture:getMipmapCount|mipmap level]] of the given [[Canvas]]. All drawing operations until the next ''love.graphics.setCanvas'' call will be redirected to the [[Canvas]] and not shown on the screen.
 +
=== Synopsis ===
 +
<source lang="lua">
 +
love.graphics.setCanvas( canvas, slice, mipmap )
 +
</source>
 +
=== Arguments ===
 +
{{param|Canvas|canvas|The new render target.}}
 +
{{param|number|slice|For cubemaps this is the cube face index to render to (between 1 and 6). For Array textures this is the [[Texture:getLayerCount|array layer]]. For volume textures this is the depth slice. 2D canvases should use a value of 1.}}
 +
{{param|number|mipmap (1)|The mipmap level to render to, for Canvases with [[Texture:getMipmapCount|mipmaps]].}}
 +
=== Returns ===
 +
Nothing.
  
 
== Examples ==
 
== Examples ==

Revision as of 00:04, 15 November 2018

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 2D 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 all drawing operations will draw only to the first canvas passed to the function, but that can be changed if a pixel shader is used with the void effect function instead of the regular vec4 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.

Function

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

Sets the render target to the specified layer/slice and mipmap level of the given 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, slice, mipmap )

Arguments

Canvas canvas
The new render target.
number slice
For cubemaps this is the cube face index to render to (between 1 and 6). For Array textures this is the array layer. For volume textures this is the depth slice. 2D canvases should use a value of 1.
number mipmap (1)
The mipmap level to render to, for Canvases with mipmaps.

Returns

Nothing.

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