引擎源码: ibo的类型数组, 扩展空间;
_reallocIData (copyOldData) { let oldIData = this._iData; this._iData = new Uint16Array(this._initIDataCount); // 初始或扩展的新长度; if (oldIData && copyOldData) { // 拷贝旧数据 let iData = this._iData; for (let i = 0, l = oldIData.length; i < l; i++) { iData[i] = oldIData[i]; } } },
只是疑问: 那个for循环, 为何不直接this._iData.set(oldIData). 有什么考量吗?
还有VBO: 为何要创建Uint8Array视图做中介呢? Float32Array和Uint32Array不都是4字节吗? 直接set不就行了?
…
this._vData = new Float32Array(this._initVDataCount);
this._uintVData = new Uint32Array(this._vData.buffer); ;let newData = new Uint8Array(this._uintVData.buffer); if (oldVData && copyOldData) { for (let i = 0, l = oldVData.length; i < l; i++) { newData[i] = oldVData[i]; } } // D
