【发布时间】:2014-11-22 16:41:44
【问题描述】:
我有一个具有 2d 和(重复)webgl 上下文的元素,其纹理与 2d 上下文的像素数据相同。
是否可以在不删除 webgl 上下文的情况下从内存中删除 2d 上下文?
(通过 clearRect 或 fillRect 清除 2d 上下文不会将其从内存中删除) (更改宽度/高度会重置 webgl 和 2d 上下文。)
我现在唯一能想到的就是新建一个canvas,在临时canvas中绘制一个2d context,设置width属性(从而清空原始canvas),然后在原始canvas中基于临时画布 2d 上下文。
【问题讨论】:
-
为什么要从内存中删除?
-
我需要减少游戏占用的内存量...
-
不可能改变绑定到 context2D 的画布的宽度/高度会改变绑定到 webGL 的另一个画布的宽度/高度。答案是将宽度/高度设置为 0
-
GameAlchemist:是同一张画布。
-
一个画布只能绑定到一种上下文。一旦绑定,getContext 会为其他未绑定的上下文返回 null。这些是规格,有疑问在这里测试:jsbin.com/divamuvujuzi/1/edit?js,console
标签: javascript html canvas webgl