three-stdlib 2.35.13 → 2.35.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -722,7 +722,11 @@ class GLTFWriter {
722
722
  default:
723
723
  componentSize = 4;
724
724
  }
725
- const byteLength = getPaddedBufferSize(count * attribute.itemSize * componentSize);
725
+ let byteStride = attribute.itemSize * componentSize;
726
+ if (target === WEBGL_CONSTANTS.ARRAY_BUFFER) {
727
+ byteStride = Math.ceil(byteStride / 4) * 4;
728
+ }
729
+ const byteLength = getPaddedBufferSize(count * byteStride);
726
730
  const dataView = new DataView(new ArrayBuffer(byteLength));
727
731
  let offset = 0;
728
732
  for (let i = start; i < start + count; i++) {
@@ -760,6 +764,9 @@ class GLTFWriter {
760
764
  }
761
765
  offset += componentSize;
762
766
  }
767
+ if (offset % byteStride !== 0) {
768
+ offset += byteStride - offset % byteStride;
769
+ }
763
770
  }
764
771
  const bufferViewDef = {
765
772
  buffer: this.processBuffer(dataView.buffer),
@@ -769,7 +776,7 @@ class GLTFWriter {
769
776
  if (target !== void 0)
770
777
  bufferViewDef.target = target;
771
778
  if (target === WEBGL_CONSTANTS.ARRAY_BUFFER) {
772
- bufferViewDef.byteStride = attribute.itemSize * componentSize;
779
+ bufferViewDef.byteStride = byteStride;
773
780
  }
774
781
  this.byteOffset += byteLength;
775
782
  json.bufferViews.push(bufferViewDef);