Difference between revisions of "Canvas"

(being bold - this page only covers the 0.8.0 framebuffer/canvas, and images are auto-padded in 0.8.0 so PO2 syndrome should never be an issue)
(Canvases do not auto-pad, this is intentional. It's likely that all implementations supporting framebuffers have the non-po2 textures extension, though. Added a less-in-your-face notice.)
Line 3: Line 3:
  
 
By drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.
 
By drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item,  you can reduce the number of draw operations performed each frame.
 +
 +
Canvases can be susceptible to [[PO2_Syndrome| power of 2 syndrome]]. Most graphics cards that support Canvas should have PO2 texture support. However, there are some old cards that do not. Check with [[love.graphics.isSupported|love.graphics.isSupported("npot")]] if it is supported.
  
 
== Constructors ==
 
== Constructors ==

Revision as of 19:04, 3 September 2012

Available since LÖVE 0.8.0
It has been renamed from Framebuffer.

A Canvas is used for off-screen rendering. Think of it as an invisible screen that you can draw to, but that will not be visible until you draw it to the actual visible screen. It is also known as "render to texture".

By drawing things that do not change position often (such as background items) to the Canvas, and then drawing the entire Canvas instead of each item, you can reduce the number of draw operations performed each frame.

Canvases can be susceptible to power of 2 syndrome. Most graphics cards that support Canvas should have PO2 texture support. However, there are some old cards that do not. Check with love.graphics.isSupported("npot") if it is supported.

Constructors

love.graphics.newCanvasCreates a new Canvas.

Functions

Canvas:clearClears the contents of a Canvas to a specific color.
Canvas:generateMipmapsGenerates mipmaps for the Canvas, based on the contents of the highest-resolution mipmap level.
Canvas:getFSAAGets the number of FSAA samples used when drawing to the Canvas.
Canvas:getFormatGets the texture format of the Canvas.
Canvas:getImageDataGenerates ImageData from the contents of the Canvas.
Canvas:getMSAAGets the number of MSAA samples used when drawing to the Canvas.
Canvas:getMipmapModeGets the MipmapMode this Canvas was created with.
Canvas:getPixelGets the pixel at the specified position in a Canvas.
Canvas:newImageDataGenerates ImageData from the contents of the Canvas.
Canvas:renderToRender to a Canvas using a function.
Object:releaseImmediately destroys the object's Lua reference.
Object:typeGets the type of the object as a string.
Object:typeOfChecks whether an object is of a certain type.

Supertypes

Examples

sample from the forum

http://love2d.org/forums/viewtopic.php?f=4&t=2136&start=20

See Also


Other Languages