clear¶
-
GPGPU.
clear
(id)¶ 指定したidのWebGLのオブジェクトをすべて削除します。
ソース¶
clear(id) {
var pkg = this.packages[id];
if (pkg) {
// 指定したidのパッケージがある場合
delete this.packages[id]
gl.bindBuffer(gl.ARRAY_BUFFER, null); chk();
if (pkg.idxBuffer) {
// バッファを削除する。
gl.deleteBuffer(pkg.idxBuffer); chk();
}
// すべてのvarying変数に対し
for (let varying of pkg.varyings) {
if (varying.feedbackBuffer) {
// Transform Feedbackバッファがある場合
// バッファを削除する。
gl.deleteBuffer(varying.feedbackBuffer); chk();
}
}
if (pkg.transformFeedback) {
// Transform Feedbackがある場合
gl.deleteTransformFeedback(pkg.transformFeedback); chk();
}
// テクスチャのバインドを解く。
gl.bindTexture(gl.TEXTURE_2D, null); chk();
gl.bindTexture(gl.TEXTURE_3D, null); chk();
// すべてのテクスチャを削除する。
pkg.textures.forEach(x => gl.deleteTexture(x.Texture), chk())
// プログラムを削除する。
gl.deleteProgram(pkg.program); chk();
}
}