Skip to content
Snippets Groups Projects
Commit 4923e299 authored by Alexander Rose's avatar Alexander Rose
Browse files

added SimpleBuffer.copy

parent b3c368d5
Branches
Tags
No related merge requests found
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
* @author Alexander Rose <alexander.rose@weirdbyte.de> * @author Alexander Rose <alexander.rose@weirdbyte.de>
*/ */
import { defaults } from 'mol-util';
export interface SimpleBuffer extends Uint8Array { export interface SimpleBuffer extends Uint8Array {
readInt8: (offset: number) => number readInt8: (offset: number) => number
readUInt8: (offset: number) => number readUInt8: (offset: number) => number
...@@ -38,6 +40,8 @@ export interface SimpleBuffer extends Uint8Array { ...@@ -38,6 +40,8 @@ export interface SimpleBuffer extends Uint8Array {
writeUInt32BE: (value: number, offset: number) => void writeUInt32BE: (value: number, offset: number) => void
writeFloatBE: (value: number, offset: number) => void writeFloatBE: (value: number, offset: number) => void
writeDoubleBE: (value: number, offset: number) => void writeDoubleBE: (value: number, offset: number) => void
copy: (targetBuffer: Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number) => number
} }
export namespace SimpleBuffer { export namespace SimpleBuffer {
...@@ -76,6 +80,14 @@ export namespace SimpleBuffer { ...@@ -76,6 +80,14 @@ export namespace SimpleBuffer {
writeUInt32BE: (value: number, offset: number) => dv.setUint32(offset, value, false), writeUInt32BE: (value: number, offset: number) => dv.setUint32(offset, value, false),
writeFloatBE: (value: number, offset: number) => dv.setFloat32(offset, value, false), writeFloatBE: (value: number, offset: number) => dv.setFloat32(offset, value, false),
writeDoubleBE: (value: number, offset: number) => dv.setFloat64(offset, value, false), writeDoubleBE: (value: number, offset: number) => dv.setFloat64(offset, value, false),
copy: (targetBuffer: Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number) => {
targetStart = defaults(targetStart, 0)
sourceStart = defaults(sourceStart, 0)
sourceEnd = defaults(sourceEnd, array.length)
targetBuffer.set(array.subarray(sourceStart, sourceEnd), targetStart)
return sourceEnd - sourceStart
}
}) })
} }
......
...@@ -46,8 +46,7 @@ function fillCubeBuffer(ctx: Data.Context, sampling: Data.Sampling, u: number, v ...@@ -46,8 +46,7 @@ function fillCubeBuffer(ctx: Data.Context, sampling: Data.Sampling, u: number, v
for (let k = offsetK; k < maxK; k++) { for (let k = offsetK; k < maxK; k++) {
// copying the bytes direct is faster than using buffer.write* functions. // copying the bytes direct is faster than using buffer.write* functions.
const start = (l * sizeHK + k * sizeH + offsetH) * elementSize; const start = (l * sizeHK + k * sizeH + offsetH) * elementSize;
// TODO src.copy(cubeBuffer, writeOffset, start, start + copyH);
cubeBuffer.set(src.subarray(start, start + copyH), writeOffset)
writeOffset += copyH; writeOffset += copyH;
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment