Skip to content

Commit bc2b9b4

Browse files
christurnbullgreggman
authored andcommitted
Use bytes_per_element with bufferData length
1 parent dc8aafb commit bc2b9b4

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

src/augment-api.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,9 @@ export function augmentAPI(ctx, nameOfClass, options = {}) {
387387
throw new Error(`no buffer bound to ${target}`);
388388
}
389389
let newSize = 0;
390-
if (isBufferSource(src)) {
390+
if (length !== undefined) {
391+
newSize = length * src.BYTES_PER_ELEMENT;
392+
} else if (isBufferSource(src)) {
391393
newSize = src.byteLength;
392394
} else if (isNumber(src)) {
393395
newSize = src;

test/tests/buffer-tests.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,14 @@ describe('buffer tests', () => {
4646

4747
gl.bindBuffer(gl.ARRAY_BUFFER, buf1);
4848
const data1 = new Float32Array(25);
49-
const size1 = data1.length * data1.BYTES_PER_ELEMENT;
50-
const length1 = data1.length;
49+
const length1 = 15;
50+
const size1 = length1 * data1.BYTES_PER_ELEMENT;
5151
gl.bufferData(gl.ARRAY_BUFFER, data1, gl.STATIC_DRAW, 0, length1);
5252
tracker.addMemory(size1);
5353

5454
const data1a = new Uint16Array(37);
55-
const size1a = data1a.length * data1a.BYTES_PER_ELEMENT;
56-
const length1a = data1a.length;
55+
const length1a = 30;
56+
const size1a = length1a * data1a.BYTES_PER_ELEMENT;
5757
gl.bufferData(gl.ARRAY_BUFFER, data1a, gl.STATIC_DRAW, 0, length1a);
5858
tracker.addMemory(size1a - size1);
5959

@@ -62,8 +62,8 @@ describe('buffer tests', () => {
6262

6363
gl.bindBuffer(gl.ARRAY_BUFFER, buf2);
6464
const data2 = new Float32Array(55);
65-
const size2 = data2.length * data2.BYTES_PER_ELEMENT;
66-
const length2 = data2.length;
65+
const length2 = 41;
66+
const size2 = length2 * data2.BYTES_PER_ELEMENT;
6767
gl.bufferData(gl.ARRAY_BUFFER, data2, gl.STATIC_DRAW, 0, length2);
6868
tracker.addMemory(size2);
6969

webgl-memory.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -737,7 +737,9 @@
737737
throw new Error(`no buffer bound to ${target}`);
738738
}
739739
let newSize = 0;
740-
if (isBufferSource(src)) {
740+
if (length !== undefined) {
741+
newSize = length * src.BYTES_PER_ELEMENT;
742+
} else if (isBufferSource(src)) {
741743
newSize = src.byteLength;
742744
} else if (isNumber(src)) {
743745
newSize = src;

0 commit comments

Comments
 (0)