Difference between revisions of "love.graphics.newFramebuffer"
m (width spelled incorretly) |
(Add canvas emulation example) |
||
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 14:02, 17 November 2010
Available since LÖVE 0.7.0 |
It is not supported in earlier versions. |
Creates a new framebuffer object for offscreen rendering.
Contents
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.
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:
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