Difference between revisions of "Canvas (简体中文)"
m (Fixed parent) |
(Fix links, parents and listings.) |
||
Line 9: | Line 9: | ||
== 构造函数 == | == 构造函数 == | ||
− | {{#ask: [[Category:Functions]] [[Constructs::Canvas]] | + | {{#ask: [[Category:Functions]] [[Constructs::Canvas (简体中文)]] |
| headers=hide | | headers=hide | ||
| default=None. | | default=None. | ||
Line 21: | Line 21: | ||
}} | }} | ||
== 函数 == | == 函数 == | ||
− | {{#ask: [[Category:Functions]] [[parent::Canvas||Drawable||Object]] [[Concept:Current]] | + | {{#ask: [[Category:Functions]] [[parent::Canvas (简体中文)||Drawable (简体中文)||Object (简体中文)]] [[Concept:Current]] |
| headers=hide | | headers=hide | ||
| format=template | | format=template | ||
Line 32: | Line 32: | ||
}} | }} | ||
== 父类 == | == 父类 == | ||
− | * [[parent::Texture]] | + | * [[parent::Texture (简体中文)]] |
− | * [[parent::Drawable]] | + | * [[parent::Drawable (简体中文)]] |
− | * [[parent::Object]] | + | * [[parent::Object (简体中文)]] |
== 范例 == | == 范例 == | ||
=== 绘制一些东西到Canvas上,然后覆盖在画面上。 === | === 绘制一些东西到Canvas上,然后覆盖在画面上。 === | ||
Line 70: | Line 70: | ||
== 参考 == | == 参考 == | ||
* [[parent::love.graphics (简体中文)]] | * [[parent::love.graphics (简体中文)]] | ||
− | * [[love.graphics.setCanvas]] | + | * [[love.graphics.setCanvas (简体中文)]] |
− | * [[love.graphics.isSupported]] | + | * [[love.graphics.isSupported (简体中文)]] |
[[Category:Types]] | [[Category:Types]] | ||
{{#set:Description=Off-screen render target.}} | {{#set:Description=Off-screen render target.}} |
Revision as of 19:50, 6 January 2015
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") 来检查是否支持。 |
构造函数
love.graphics.newCanvas (简体中文) | 创建一个新的 Canvas(画布)。 | 0.8.0 |
函数
Object:release (简体中文) | 立即摧毁对象在 Lua 中的引用 | 11.0 |
父类
范例
绘制一些东西到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
参考
其他语言
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