love.graphics.setCanvas (Français)

Disponible depuis LÖVE 0.8.0
il s'agît d'un renommage de love.graphics.setRenderTarget.

Capture les opérations de tracé dans un Canvas.

Fonction

Définit la cible du rendu à un Canvas spécifique. Toutes les opérations de tracé jusqu'au prochain appel à love.graphics.setCanvas seront redirigés vers le Canvas et ne seront pas affichés à l'écran.

Lorsqu'un stencil ou or test de profondeur est utilisé avec un Canvas actif, le tampon de stencil ou de profondeur soit être explicitement activé à l'aide de setCanvas via la variante ci-dessous.

Il faut noter que le canvas doit être actif lorsque love.graphics.present est appelé. love.graphics.present est appelé à la fin de love.draw dans le love.run par défaut, ainsi si vous activez un canvas en utilisant cette fonction, vous avez normalement besoin de le désactiver à un moment, avant que love.draw ne finisse.

Synopsis

love.graphics.setCanvas( canvas, mipmap )

Arguments

Canvas (Français) canvas
La nouvelle cible.
Available since LÖVE 11.0
number (Français) mipmap (1)
Le niveau de mipmap auquel rendre, pour les Canvases avec mipmaps.

Retourne

Rien.

Fonction

Remet la cible de rendu vers l'écran, c'est à dire réactive le tracé à l'écran.

Synopsis

love.graphics.setCanvas( )

Arguments

Aucun.

Retourne

Rien.

Fonction

Disponible depuis LÖVE 0.9.0
Ce-tte variant n'est pas supporté-e par des versions plus anciennes.

Définit la cible de rendu simultanément vers de multiples Canvas 2D. Toutes les opérations de tracés jusqu'au prochain appel à love.graphics.setCanvas seront redirigés vers les canvas spécifiés et ne seront pas affichés à l'écran.

Synopsis

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

Arguments

Canvas (Français) canvas1
Première cible de rendu.
Canvas (Français) canvas2
Seconde cible de rendu.
Canvas (Français) ...
D'avantage de canvas.

Retourne

Rien.

Notes

Normalement toutes les opérations de tracés ne sont effectuées que sur le premier canvas passé à la fonction, mais cela peut être changé si un ombrage de est utilisé avec la fonction void effect au lieu de vec4 effect standard.

Tous les arguments canvas doivent avoir les mêmes largeurs et hauteurs, ainsi que le même type de texture. Les ordinateurs supportant les canvas ne supporteront pas tous plusieurs cibles de rendu. Si love.graphics.isSupported("multicanvas") retourne true (vrai), au moins 4 canvas actifs simultanément sont supportés.

Template:Note (Français)

Fonction

Disponible depuis LÖVE 11.0
Ce-tte variant n'est pas supporté-e par des versions plus anciennes.

Définit la cible de rendu au calque/slice et niveau de mipmap spécifiés du Canvas non-2D fournit. Toutes les opérations de tracé jusqu'au prochain appel à love.graphics.setCanvas seront redirigé vers le Canvas et ne seront pas affichés à l'écran.

Synopsis

love.graphics.setCanvas( canvas, slice, mipmap )

Arguments

Canvas (Français) canvas
Nouvelle cible.
number (Français) 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.

Fonction

Disponible depuis LÖVE 11.0
Ce-tte variant n'est pas supporté-e par des versions plus anciennes.

Sets the active render target(s) and active stencil and depth buffers based on the specified setup information. 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( setup )

Arguments

table setup
A table specifying the active Canvas(es), their mipmap levels and active layers if applicable, and whether to use a stencil and/or depth buffer.
RenderTargetSetup [1]
The Canvas to render to.
RenderTargetSetup [2] (nil)
An additional Canvas to render to, if multiple simultaneous render targets are wanted.
RenderTargetSetup ...
Additional Canvases to render to, if multiple simultaneous render targets are wanted.
boolean stencil (false)
Whether an internally managed stencil buffer should be used, if the depthstencil field isn't set.
boolean depth (false)
Whether an internally managed depth buffer should be used, if the depthstencil field isn't set.
RenderTargetSetup depthstencil (nil)
An optional custom depth/stencil formatted Canvas to use for the depth and/or stencil buffer.

Returns

Nothing.

Notes

The RenderTargetSetup parameters can either be a Canvas object, or a table in the following format: {canvas, mipmap=#, layer=#, face=#}

Canvas [1]
The Canvas to use for this active render target.
number mipmap (1)
The mipmap level to render to, for Canvases with mipmaps.
number layer (1)
Only used for Volume and Array-type Canvases. For Array textures this is the array layer to render to. For volume textures this is the depth slice.
number face (1)
Only used for Cubemap-type Canvases. The cube face index to render to (between 1 and 6)

Exemples

Tracer sur un canvas

function love.load()
    -- Crée un canvas
    canvas = love.graphics.newCanvas()

    -- Opération de tracés directement sur le canvas
    love.graphics.setCanvas(canvas)

    -- trace un carré coloré sur le canvas
    love.graphics.setColor(0.8, 0.9, 0.4)
    love.graphics.rectangle("fill", 0, 0, 100, 100)

    -- re-active le tracé sur l'écran principal
    love.graphics.setCanvas()
end

function love.draw()
    -- Trace le canvas agrandit à l'écran
    love.graphics.setColor(1, 1, 1)
    love.graphics.draw(canvas, 200, 100, 0, 0.5, 0.5)
end


Réglages avancés avec la variante table de love.graphics.setCanvas

-- Permet les appels à love.graphics.stencil lors du tracé sur le Canvas donné.
love.graphics.setCanvas({canvas, stencil=true})

-- Utilise plusieurs cibles de rendu simultanément lorsque trace vers plusieurs canvas de type Array Texture (Table de texture),
-- et utilise également un un tampon de profondeur personnalisé.
canvas1 = love.graphics.newCanvas(128, 128, 4, {type="array"})
canvas2 = love.graphics.newCanvas(128, 128, 8, {type="array"})
depthcanvas = love.graphics.newCanvas(128, 128, {format="depth24", readable=true})

love.graphics.setCanvas({
    {canvas1, layer = 3},
    {canvas2, layer = 1},
    depthstencil = depthcanvas,
})

Voir également



Autres langues