Как установить SharedArrayBuffer типа bufferData в webgl? - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь использовать SharedArrayBuffer в качестве bufferData в webgl.

Документ MDN Скажите, что это возможно.

Я просто изменяю "ArrayBuffer" на "SharedArrayBuffer" почему мой код выдает ошибку.

[. WebGL-0x7fc1c209b800] ОШИБКА GL: GL_INVALID_OPERATION: glDrawArrays: попытка доступа к вершинам вне диапазона в атрибуте 0

[Codepen](https://codepen.io/callin/pen/WLJdpq)

1 Ответ

0 голосов
/ 07 января 2019

Я изменяю второй параметр "bufferData ()" из sharedArraybuffer для просмотра. Это странно!

исходный код ошибки

        NODE_COUNT = 1
        storage = new SharedArrayBuffer( BYTES_PER_NODE * NODE_COUNT )
        console.log 'storage', storage.byteLength
        position = new Float32Array(storage)

        position.set([-.5,.3], 0)

        positionBuffer = gl.createBuffer();
        gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
        gl.bufferData(gl.ARRAY_BUFFER, storage, gl.STATIC_DRAW);

исправлена ​​ошибка кода

        NODE_COUNT = 1
        storage = new SharedArrayBuffer( BYTES_PER_NODE * NODE_COUNT )
        console.log 'storage', storage.byteLength
        position = new Float32Array(storage)

        position.set([-.5,.3], 0)

        positionBuffer = gl.createBuffer();
        gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
        gl.bufferData(gl.ARRAY_BUFFER, position, gl.STATIC_DRAW); # <-- error fixed
...