Views
Canvas (简体中文)
Available since LÖVE 0.8.0 |
由Framebuffer重命名而来. |
Canvas用于离屏渲染。可以把它看成是一种无形的屏幕,你可以在上面绘制一些东西,但直到你将它设置为可见的之前,它都不会被看见不可见的。它也被称为“纹理渲染(render to texture)”。
在Canvas上绘制一些不经常改变的东西(如背景图案),然后再把Canvas绘制绘制出来来取代每个东西都独自绘制, 可以减少画面每帧拉伸操作的次数。
Canvases can be susceptible to power of 2 syndrome. Most graphics cards that support Canvas should have non-PO2 texture support. However, there are some old cards that do not. Check with love.graphics.isSupported("npot") if it is supported.
有些很老的显卡不支持Canvas,如果你试图使用它们将抛出一个错误。在运行时使用 love.graphics.isSupported("canvas") 来检查是否支持。 |
构造函数
None.
函数
父类
范例
绘制一些东西到Canvas上,然后覆盖在画面上。
function love.load()
canvas = love.graphics.newCanvas(800, 600)
-- 在Canvas上用Alpha混合模式绘制一个矩形。
love.graphics.setCanvas(canvas)
canvas:clear()
love.graphics.setBlendMode('alpha')
love.graphics.setColor(255, 0, 0, 128)
love.graphics.rectangle('fill', 0, 0, 100, 100)
love.graphics.setCanvas()
end
function love.draw()
love.graphics.setColor(255, 255, 255, 255)
-- Canvas上的矩形已经使用alpha混合。
-- 绘Canvas布本身时,以防止其他混合使用premultiplied混合模式。
love.graphics.setBlendMode('premultiplied')
love.graphics.draw(canvas)
-- 展示Canvas使用了alpha混合模式的差异。
love.graphics.setBlendMode('alpha')
love.graphics.draw(canvas, 100, 0)
-- 矩形直接画到与Alpha混合模式的画面。
love.graphics.setBlendMode('alpha')
love.graphics.setColor(255, 0, 0, 128)
love.graphics.rectangle('fill', 200, 0, 100, 100)
end
canvas = love.graphics.newCanvas(800, 600)
-- 在Canvas上用Alpha混合模式绘制一个矩形。
love.graphics.setCanvas(canvas)
canvas:clear()
love.graphics.setBlendMode('alpha')
love.graphics.setColor(255, 0, 0, 128)
love.graphics.rectangle('fill', 0, 0, 100, 100)
love.graphics.setCanvas()
end
function love.draw()
love.graphics.setColor(255, 255, 255, 255)
-- Canvas上的矩形已经使用alpha混合。
-- 绘Canvas布本身时,以防止其他混合使用premultiplied混合模式。
love.graphics.setBlendMode('premultiplied')
love.graphics.draw(canvas)
-- 展示Canvas使用了alpha混合模式的差异。
love.graphics.setBlendMode('alpha')
love.graphics.draw(canvas, 100, 0)
-- 矩形直接画到与Alpha混合模式的画面。
love.graphics.setBlendMode('alpha')
love.graphics.setColor(255, 0, 0, 128)
love.graphics.rectangle('fill', 200, 0, 100, 100)
end
参考
其他语言
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info