webgpu-utils

    Function makeTypedArrayViews

    • Creates a set of named TypedArray views on an ArrayBuffer. If you don't pass in an ArrayBuffer, one will be created. If you're using an unsized array then you must pass in your own arraybuffer

      Example:

      const code = `
      struct Stuff {
      direction: vec3f,
      strength: f32,
      matrix: mat4x4f,
      };
      @group(0) @binding(0) var<uniform> uni: Stuff;
      `;
      const defs = makeShaderDataDefinitions(code);
      const views = makeTypedArrayViews(devs.uniforms.uni.typeDefinition);

      views would effectively be

      views = {
      direction: Float32Array(arrayBuffer, 0, 3),
      strength: Float32Array(arrayBuffer, 3, 4),
      matrix: Float32Array(arraybuffer, 4, 20),
      };

      You can use the views directly or you can use setStructuredView

      Parameters

      • typeDef: TypeDefinition

        Definition of the various types of views.

      • OptionalarrayBuffer: ArrayBuffer

        Optional ArrayBuffer to use (if one provided one will be created)

      • Optionaloffset: number

        Optional offset in existing ArrayBuffer to start the views.

      Returns ArrayBufferViews

      A bunch of named TypedArray views and the ArrayBuffer

    MMNEPVFCICPMFPCPTTAAATR