Canvas (Français)
Disponible depuis LÖVE 0.8.0 |
Ceci est un renommage de Framebuffer. |
Un Canvas (toile) est utilisé pour le rendu hors écran. Pensez à un écran invisible sur lequel vous pouvez dessiner, mais qui sera invisible jusqu'à ce que vous l'affichiez à l'écran visible final. C'est également connu sous le nom « rendu vers une texture ».
En dessinant des choses qui ne changent pas souvent de position (tels que les objets du fond) sur le Canvas, puis en dessinant le Canvas complet au lieu de chaque objets, vous pouvez réduire le nombre d'opération de dessin effectué à chaque image.
Dans les version précédentes à la 0.10.0, les cartes graphiques que supportaient LÖVE ne pouvaient pas toutes utiliser des Canvas. love.graphics.isSupported("canvas") pouvait être utilisé pour vérifier son support pendant l'exécution.
Lorsque du contenu est dessiné sur un Canvas en utilisant un mixage alpha standard, les valeurs alpha de ce contenu sont multipliées avec leur valeurs RVB.
Les couleurs des pixels du Canvas auront donc un alpha prémultiplié une fois qu'il y aura été dessiné. Lorsque le Canvas est dessiné à l'écran ou sur un autre Canvas, vous devez donc utiliser un mélange alpha prémultiplié – love.graphics.setBlendMode("alpha", "premultiplied"). |
Contents
Constructeurs
love.graphics.newCanvas | Creates a new Canvas. | 0.8.0 |
Fonctions
Canvas:clear | Clears the contents of a Canvas to a specific color. | 0.8.0 | 0.10.0 |
Canvas:generateMipmaps | Generates mipmaps for the Canvas, based on the contents of the highest-resolution mipmap level. | 11.0 | |
Canvas:getFSAA | Gets the number of FSAA samples used when drawing to the Canvas. | 0.9.1 | 0.10.0 |
Canvas:getFormat | Gets the texture format of the Canvas. | 0.9.1 | 11.0 |
Canvas:getImageData | Generates ImageData from the contents of the Canvas. | 0.8.0 | 0.10.0 |
Canvas:getMSAA | Gets the number of MSAA samples used when drawing to the Canvas. | 0.9.2 | |
Canvas:getMipmapMode | Gets the MipmapMode this Canvas was created with. | 11.0 | |
Canvas:getPixel | Gets the pixel at the specified position in a Canvas. | 0.9.0 | 0.10.0 |
Canvas:newImageData | Generates ImageData from the contents of the Canvas. | 0.10.0 | |
Canvas:renderTo | Render to a Canvas using a function. | 0.8.0 | |
Object:release | Immediately destroys the object's Lua reference. | 11.0 | |
Object:type | Gets the type of the object as a string. | ||
Object:typeOf | Checks whether an object is of a certain type. | ||
Texture:getDPIScale | Gets the DPI scale factor of the Texture. | 11.0 | |
Texture:getDepth | Gets the depth of a Volume Texture. | 11.0 | |
Texture:getDepthSampleMode | Gets the comparison mode used when sampling from a depth texture in a shader. | 11.0 | |
Texture:getDimensions | Gets the width and height of the Texture. | 0.9.0 | |
Texture:getFilter | Gets the filter mode of the Texture. | ||
Texture:getFormat | Gets the pixel format of the Texture. | 11.0 | |
Texture:getHeight | Gets the height of the Texture. | ||
Texture:getLayerCount | Gets the number of layers / slices in an Array Texture. | 11.0 | |
Texture:getMipmapCount | Gets the number of mipmaps contained in the Texture. | 11.0 | |
Texture:getMipmapFilter | Gets the mipmap filter mode for a Texture. | 0.9.0 | |
Texture:getPixelDimensions | Gets the width and height in pixels of the Texture. | 11.0 | |
Texture:getPixelHeight | Gets the height in pixels of the Texture. | 11.0 | |
Texture:getPixelWidth | Gets the width in pixels of the Texture. | 11.0 | |
Texture:getTextureType | Gets the type of the Texture. | 11.0 | |
Texture:getWidth | Gets the width of the Texture. | ||
Texture:getWrap | Gets the wrapping properties of a Texture. | ||
Texture:isReadable | Gets whether the Texture can be drawn and sent to a Shader. | 11.0 | |
Texture:setDepthSampleMode | Sets the comparison mode used when sampling from a depth texture in a shader. | 11.0 | |
Texture:setFilter | Sets the filter mode of the Texture. | ||
Texture:setMipmapFilter | Sets the mipmap filter mode for a Texture. | 0.9.0 | |
Texture:setWrap | Sets the wrapping properties of a Texture. |
Enums
MipmapMode | Controls whether a Canvas has mipmaps, and its behaviour when it does. | 11.0 |
Supertypes
Exemples
Dessiner quelque chose sur le Canvas, puis dessiner le Canvas à l'écran.
function love.load()
canvas = love.graphics.newCanvas(800, 600)
-- Un rectangle est dessiné sur le canvas avec une mode de mixage alpha standard.
love.graphics.setCanvas(canvas)
love.graphics.clear()
love.graphics.setBlendMode("alpha")
love.graphics.setColor(1, 0, 0, 0.5)
love.graphics.rectangle('fill', 0, 0, 100, 100)
love.graphics.setCanvas()
end
function love.draw()
-- Trés important ! : remettez à zéro la couleur avant de dessiner sur le canvas, afin d'avoir les couleurs affichées corréctement.
-- Voir cette discussion : https://love2d.org/forums/viewtopic.php?f=4&p=211418#p211418
love.graphics.setColor(1, 1, 1, 1)
-- Le rectangle du Canvas a déjà été mélangé en alpha.
-- Utilise le mode mélange alpha prémultiplié lorsque dessine le Canvas lui-même, afin de prévenir des mélanges impropres.
love.graphics.setBlendMode("alpha", "premultiplied")
love.graphics.draw(canvas)
-- Observez la différence si le Canvas est dessiné avec le mode mélange alpha standard à la place.
love.graphics.setBlendMode("alpha")
love.graphics.draw(canvas, 100, 0)
-- Le rectangle est dessiné directement à l'écran avec le mode mélange alpha standard.
love.graphics.setBlendMode("alpha")
love.graphics.setColor(1, 0, 0, 0.5)
love.graphics.rectangle('fill', 200, 0, 100, 100)
end
Voir également
- love.graphics (Français)
- love.graphics.setCanvas
- love.graphics.setBlendMode
- love.graphics.isSupported
Autres langues
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