{{newin|[[0.8.0]]|080|type=function|text=It has been renamed from [[love.graphics.newFramebuffer]]}}
Creates a new [[Canvas]] object for offscreen rendering.
{{newobjectnotice}}

== Function ==
=== Synopsis ===
<source lang="lua">
canvas = love.graphics.newCanvas( )
</source>
=== Arguments ===
None.
=== Returns ===
{{param|Canvas|canvas|A new Canvas with dimensions equal to the window's size in pixels.}}

== Function ==
=== Synopsis ===
<source lang="lua">
canvas = love.graphics.newCanvas( width, height )
</source>
=== Arguments ===
{{param|number|width|The desired width of the Canvas.}}
{{param|number|height|The desired height of the Canvas.}}
=== Returns ===
{{param|Canvas|canvas|A new Canvas with specified width and height.}}

== Function ==
{{newin|[[11.0]]|110|type=variant}}
Creates a 2D or [[TextureType|cubemap]] Canvas using the given settings.
=== Synopsis ===
<source lang="lua">
canvas = love.graphics.newCanvas( width, height, settings )
</source>
=== Arguments ===
{{param|number|width|The desired width of the Canvas.}}
{{param|number|height|The desired height of the Canvas.}}
{{param|table|settings|A table containing the given fields:}}
{{subparam|TextureType|type ("2d")|The type of Canvas to create.}}
{{subparam|PixelFormat|format ("normal")|The format of the Canvas.}}
{{subparam|boolean|readable|Whether the Canvas is [[Texture:isReadable|readable]] (drawable and accessible in a [[Shader]]). True by default for regular formats, false by default for depth/stencil formats.}}
{{subparam|number|msaa (0)|The desired number of multisample antialiasing (MSAA) samples used when drawing to the Canvas.}}
{{subparam|number|dpiscale ([[love.graphics.getDPIScale]]())|The [[Texture:getDPIScale|DPI scale factor]] of the Canvas, used when drawing to the Canvas as well as when drawing the Canvas to the screen.}}
{{subparam|CanvasMipmapMode|mipmaps ("none")|Whether the Canvas has mipmaps, and whether to automatically regenerate them if so.}}
=== Returns ===
{{param|Canvas|canvas|A new Canvas with specified width and height.}}
=== Notes ===
Some Canvas formats have higher system requirements than the default format. Use [[love.graphics.getCanvasFormats]] to check for support.

== Function ==
{{newin|[[11.0]]|110|type=variant}}
Creates a [[TextureType|volume or array]] texture-type Canvas.
=== Synopsis ===
<source lang="lua">
canvas = love.graphics.newCanvas( width, height, layers, settings )
</source>
=== Arguments ===
{{param|number|width|The desired width of the Canvas.}}
{{param|number|height|The desired height of the Canvas.}}
{{param|number|layers|The number of array layers (if the Canvas is an Array Texture), or the volume depth (if the Canvas is a Volume Texture).}}
{{param|table|settings|A table containing the given fields:}}
{{subparam|TextureType|type ("array")|The type of Canvas to create.}}
{{subparam|PixelFormat|format ("normal")|The format of the Canvas.}}
{{subparam|boolean|readable|Whether the Canvas is [[Texture:isReadable|readable]] (drawable and accessible in a [[Shader]]). True by default for regular formats, false by default for depth/stencil formats.}}
{{subparam|number|msaa (0)|The desired number of multisample antialiasing (MSAA) samples used when drawing to the Canvas.}}
{{subparam|number|dpiscale ([[love.graphics.getDPIScale]]())|The [[Texture:getDPIScale|DPI scale factor]] of the Canvas, used when drawing to the Canvas as well as when drawing the Canvas to the screen.}}
{{subparam|CanvasMipmapMode|mipmaps ("none")|Whether the Canvas has mipmaps, and whether to automatically regenerate them if so.}}
=== Returns ===
{{param|Canvas|canvas|A new Canvas with specified width and height.}}

== Function ==
{{newinoldin|[[0.9.0]]|090|[[11.0]]|110|type=variant}}
=== Synopsis ===
<source lang="lua">
canvas = love.graphics.newCanvas( width, height, format )
</source>
=== Arguments ===
{{param|number|width (window_width)|The desired width of the Canvas.}}
{{param|number|height (window_height)|The desired height of the Canvas.}}
{{param|CanvasFormat|format ("normal")|The desired texture format of the Canvas.}}
=== Returns ===
{{param|Canvas|canvas|A new Canvas with specified width and height.}}
=== Notes ===
Some Canvas formats have higher system requirements than the default format. Use [[love.graphics.getCanvasFormats]] to check for support.

== Function ==
{{newinoldin|[[0.9.1]]|091|[[11.0]]|110|type=variant}}
=== Synopsis ===
<source lang="lua">
canvas = love.graphics.newCanvas( width, height, format, msaa )
</source>
=== Arguments ===
{{param|number|width (window_width)|The desired width of the Canvas.}}
{{param|number|height (window_height)|The desired height of the Canvas.}}
{{param|CanvasFormat|format ("normal")|The desired texture format of the Canvas.}}
{{param|number|msaa (0)|The desired number of multisample antialiasing (MSAA) samples used when drawing to the Canvas.}}
=== Returns ===
{{param|Canvas|canvas|A new Canvas with specified width and height.}}

== Notes ==
Some Canvas formats have higher system requirements than the default format. Use [[love.graphics.getCanvasFormats]] to check for support.

The supported maximum number of MSAA samples varies depending on the system. Use [[love.graphics.getSystemLimits]] to check.
If the number of MSAA samples specified is greater than the maximum supported by the system, the Canvas will still be created but only using the maximum supported amount (this includes 0.)

== See Also ==
* [[parent::love.graphics]]
* [[Constructs::Canvas]]
* [[love.graphics.setCanvas]]
[[Category:Functions]]
[[Sub-Category::Object Creation| ]]
{{#set:Description=Creates a new [[Canvas]].}}

== Other Languages ==
{{i18n|love.graphics.newCanvas}}