引擎中类型数组拷贝旧数据的行为, 为何不用set, 而是数组递归呢?

引擎源码: 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

:grinning:

mark mark