0
有沒有辦法獲得WebGL上下文中當前存在的紋理,緩衝區或着色器的計數?如果你看看about:memory
,你可以在Firefox中得到的數字。獲取WebGL紋理/緩衝區/着色器計數
我想檢查我的應用程序關閉時,所有這些都是成功刪除。
有沒有辦法獲得WebGL上下文中當前存在的紋理,緩衝區或着色器的計數?如果你看看about:memory
,你可以在Firefox中得到的數字。獲取WebGL紋理/緩衝區/着色器計數
我想檢查我的應用程序關閉時,所有這些都是成功刪除。
有沒有辦法直接從WebGLRenderingContext獲取信息,但你可以很容易地增加自己的背景類似
var numTextures = 0;
var originalCreateTextureFn = gl.createTexture;
var originalDeleteTextureFn = gl.deleteTexture;
gl.createTexture = function() {
++numTextures;
return originalCreateTextureFn.call(gl);
};
gl.deleteTexture = function(texture) {
--numTextures;
originalDeleteTextureFn.call(gl, texture);
};
你可以寫類似功能的其他資源。
當然,如果你想要完美的話,你可能需要爲每個對象添加一個標誌,以便你試圖刪除某些東西兩次,同時檢查傳入的對象實際上是正確的。類似於
var numTextures = 0;
var originalCreateTextureFn = gl.createTexture;
var originalDeleteTextureFn = gl.deleteTexture;
gl.createTexture = function() {
++numTextures;
var texture = originalCreateTextureFn.call(gl);
texture.__deleted__ = false;
};
gl.deleteTexture = function(texture) {
if (texture && texture instanceof WebGLTexture && !texture.__deleted__) {
texture.__deleted__ = true;
--numTextures;
}
originalDeleteTextureFn.call(gl, texture);
};
是否真的沒有辦法與瀏覽器進行通信以檢索此類信息?我的意思是,瀏覽器真的關心這個(因爲它必須),並且沒有辦法獲得這些數據?聽起來不太好。 :/ –
WebGL基本上只是OpenGL ES 2.0,也沒有辦法。看起來像一個非常無用的功能。 U分配資源,以便您可以輕鬆跟蹤它們。爲什麼臃腫的API? – gman
本身並不是API功能,而是集成了瀏覽器。由於瀏覽器已經在做很多事情,並且處理每個JS> webGL調用,跟蹤分配的資源不是更方便嗎?我希望我的意思是有道理的。 –