Difference between revisions of "Canvas:clear"

m
(See Also)
 
(10 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{newin|[[0.8.0]]|080|type=function|text=It has been renamed from [[Framebuffer:clear]]}}
+
{{newinoldin|[[0.8.0]]|080|[[0.10.0]]|100|type=function|text=It has been replaced by [[love.graphics.clear]]}}
Clears content of a [[Canvas]].
+
Clears the contents of a [[Canvas]] to a specific color.
  
When called without arguments, the [[Canvas]] will be cleared with color rgba = {0,0,0,0}, i.e. it will be fully transparent. If called with color parameters (be it numbers or a color table), the alpha component may be omitted in which case it defaults to 255 (fully opaque).
+
Calling this function directly after the Canvas becomes active (via [[love.graphics.setCanvas]] or [[Canvas:renderTo]]) is more efficient than calling it when the Canvas isn't active, especially on mobile devices.
 +
 
 +
[[love.graphics.setScissor]] will restrict the area of the Canvas that this function affects.
 
== Function ==
 
== Function ==
 +
Clear the canvas to transparent black: (0, 0, 0, 0).
 
=== Synopsis ===
 
=== Synopsis ===
 
<source lang="lua">
 
<source lang="lua">
Line 14: Line 17:
  
 
== Function ==
 
== Function ==
 +
Clear the canvas to a specific color.
 
=== Synopsis ===
 
=== Synopsis ===
 
<source lang="lua">
 
<source lang="lua">
Line 35: Line 39:
 
=== Returns ===
 
=== Returns ===
 
Nothing.
 
Nothing.
 +
 +
== Examples ==
 +
=== Clear canvas before drawing ===
 +
If the c-key is pressed the canvas will be cleared before drawing a new line on the screen.
 +
<source lang="lua">
 +
local canvas = love.graphics.newCanvas()
 +
local clear
 +
function love.update()
 +
    -- Use an anonymous function to draw lines on our canvas.
 +
    canvas:renderTo(function()
 +
        if clear then canvas:clear() end  -- Clear the canvas before drawing lines.
 +
        love.graphics.setColor(love.math.random(255), 0, 0)
 +
        love.graphics.line(0, 0, love.math.random(0, love.graphics.getWidth()), love.math.random(0, love.graphics.getHeight()))
 +
    end)
 +
end
 +
 +
function love.draw()
 +
    love.graphics.setColor(255, 255, 255)
 +
    love.graphics.draw(canvas)
 +
end
 +
 +
function love.keypressed(key)
 +
    if key == "c" then clear = not clear end
 +
end
 +
</source>
 +
 +
=== How to clear canvas ===
 +
<source lang="lua">
 +
love.graphics.setCanvas(canvas) -- set to canvas
 +
love.graphics.clear(0,0,0,0) -- clear the canvas
 +
love.graphics.setCanvas() -- back to standard render output
 +
</source>
  
 
== See Also ==
 
== See Also ==
 
* [[parent::Canvas]]
 
* [[parent::Canvas]]
 +
* [[love.graphics.clear]]
 
[[Category:Functions]]
 
[[Category:Functions]]
{{#set:Description=Clears content of a Canvas.}}
+
{{#set:Description=Clears the contents of a Canvas to a specific color.}}
 +
 
 
== Other Languages ==
 
== Other Languages ==
 
{{i18n|Canvas:clear}}
 
{{i18n|Canvas:clear}}

Latest revision as of 19:53, 29 September 2021

Available since LÖVE 0.8.0 and removed in LÖVE 0.10.0
It has been replaced by love.graphics.clear.

Clears the contents of a Canvas to a specific color.

Calling this function directly after the Canvas becomes active (via love.graphics.setCanvas or Canvas:renderTo) is more efficient than calling it when the Canvas isn't active, especially on mobile devices.

love.graphics.setScissor will restrict the area of the Canvas that this function affects.

Function

Clear the canvas to transparent black: (0, 0, 0, 0).

Synopsis

Canvas:clear( )

Arguments

None.

Returns

Nothing.

Function

Clear the canvas to a specific color.

Synopsis

Canvas:clear( red, green, blue, alpha )

Arguments

number red
Red component of the clear color (0-255).
number green
Green component of the clear color (0-255).
number blue
Blue component of the clear color (0-255).
number alpha (255)
Alpha component of the clear color (0-255).

Returns

Nothing.

Function

Synopsis

Canvas:clear( rgba )

Arguments

table rgba
A sequence with the red, green, blue and alpha values as numbers (alpha may be ommitted).

Returns

Nothing.

Examples

Clear canvas before drawing

If the c-key is pressed the canvas will be cleared before drawing a new line on the screen.

local canvas = love.graphics.newCanvas()
local clear
function love.update()
    -- Use an anonymous function to draw lines on our canvas.
    canvas:renderTo(function()
        if clear then canvas:clear() end   -- Clear the canvas before drawing lines.
        love.graphics.setColor(love.math.random(255), 0, 0)
        love.graphics.line(0, 0, love.math.random(0, love.graphics.getWidth()), love.math.random(0, love.graphics.getHeight()))
    end)
end

function love.draw()
    love.graphics.setColor(255, 255, 255)
    love.graphics.draw(canvas)
end

function love.keypressed(key)
    if key == "c" then clear = not clear end
end

How to clear canvas

love.graphics.setCanvas(canvas) -- set to canvas
love.graphics.clear(0,0,0,0) -- clear the canvas
love.graphics.setCanvas() -- back to standard render output

See Also


Other Languages