Difference between revisions of "love.graphics.newFramebuffer"

m
m (Removed the part about having to scale what you draw in order for the Framebuffer to work like a canvas as this is no longer a problem.)
Line 25: Line 25:
 
=== Notes ===
 
=== Notes ===
 
Specifying a size different from the window size will not resize the canvas but the resulting image itself. To resize the canvas you have to use [[love.graphics.scale]].
 
Specifying a size different from the window size will not resize the canvas but the resulting image itself. To resize the canvas you have to use [[love.graphics.scale]].
 
== Notes ==
 
It is tempting to think of a Framebuffer as a canvas. And though you can create one that is larger or smaller than the screen, it does not act like one, meaning you cannot draw things that lie outside of the window dimensions. Instead all content drawn to the buffer will be scaled according to framebuffer_width/screen_width in x-direction and framebuffer_height/screen_height in y-direction.
 
 
You can emulate a canvas by using [[love.graphics.scale]] before drawing to the buffer:
 
<source lang="lua">
 
function love.load()
 
    framebuffer = love.graphics.newFramebuffer(FB_WIDTH, FB_HEIGHT)
 
    -- more stuff
 
end
 
 
function love.draw()
 
    love.graphics.setRenderTarget(framebuffer)
 
    love.graphics.push()
 
    love.graphics.scale(love.graphics.getWidth()/FB_WIDTH, love.graphics.getHeight()/FB_HEIGHT)
 
    -- draw things like drawing to a canvas
 
    love.graphics.pop()
 
    love.graphics.setRenderTarget(framebuffer)
 
    -- present the framebuffer
 
    love.graphics.draw(framebuffer, 0,0)
 
end
 
</source>
 
  
 
== See Also ==
 
== See Also ==

Revision as of 17:37, 8 December 2010

Available since LÖVE 0.7.0
It is not supported in earlier versions.
O.png Framebuffers are susceptible to power of 2 syndrome on many computers with lower end graphics.  


Creates a new framebuffer object for offscreen rendering.

Function

Synopsis

framebuffer = love.graphics.newFramebuffer( )

Arguments

None.

Returns

Framebuffer framebuffer
A new framebuffer with width/height equal to the window width/height.

Function

Synopsis

framebuffer = love.graphics.newFramebuffer( width, height )

Arguments

number width
The desired width of the framebuffer.
number height
The desired height of the framebuffer.

Returns

Framebuffer framebuffer
A new framebuffer with specified width and height.

Notes

Specifying a size different from the window size will not resize the canvas but the resulting image itself. To resize the canvas you have to use love.graphics.scale.

See Also

Other Languages