webgl-memoryのしくみ
#webgl-memory #WebGL
まあすべてはソースコードに書かれているとおりなんですけどね
https://github.com/greggman/webgl-memory/blob/v1.1.3/webgl-memory.js
gl.getExtension() を拡張しているのはここ
https://github.com/greggman/webgl-memory/blob/v1.1.3/webgl-memory.js#L1075
ctx.getMemoryInfo() の定義はここ
https://github.com/greggman/webgl-memory/blob/v1.1.3/webgl-memory.js#L494
返されている resources の数字の増減は makeCreateWrapper https://github.com/greggman/webgl-memory/blob/v1.1.3/webgl-memory.js#L602 ・ makeDeleteWrapper https://github.com/greggman/webgl-memory/blob/v1.1.3/webgl-memory.js#L620 というところが担当している
makeCreateWrapper は結局 createBuffer ・ createTexture ・ createProgram …… など
makeDeleteWrapper は結局 deleteBuffer ・ deleteTexture ・ deleteProgram …… などにかかってくる
めちゃくちゃ丁寧エンジニアリングをしているので読み進めるのが重たいが、やってることはそれくらい
あとは memory のほうはもうちょっと大変そう