javascript - WebGL 对象是否被垃圾收集?

标签 javascript garbage-collection webgl

在我分配的 JavaScript 内存(例如 ArrayBuffer)中,当我不再对它有任何引用时,GC 会释放它,我理解对吗?

缓冲区或纹理等 WebGL 对象与 GPU 上的内存块相关联,由 gl.bufferData()gl.textureImage2D() 分配。

我想知道:如果我放弃对 WebGLTexture 或 WebGLBuffer 对象的最后引用,它是否会通过 JavaScript VM 自动释放其 GPU 内存块来进行垃圾收集?

最佳答案


来自 spec

Note that underlying GL object will be automatically marked for deletion when the JS object is destroyed


但是您应该注意到,在您放弃最后一个引用时该对象可能不会被销毁,因此调用 deleteBuffer 仍然是一个好习惯。

关于javascript - WebGL 对象是否被垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58499937/

相关文章:

Node.js 流管道和垃圾收集

javascript - 浏览器的 JavaScript 垃圾回收是如何工作的?

javascript - 为绘制的元素添加模糊度和片段着色器的片段颜色

javascript - 单击带有 chrome 扩展程序的网站上的按钮

javascript - 动态添加新字段会重置先前字段中的值

javascript - 如何将多个参数传递给输入的 onChange 处理程序

glsl - 使用 Phong 照明和定向照明

javascript - Node Express.js 更改所提供文件的路径

C++ 垃圾收集、模板和运算符覆盖 - 无法理解为什么会抛出错误

javascript - 使用键盘箭头使用 three.js 进行第一人称模拟