# All files / src/WebGL/shaders/utils clone.ts

0% Statements 0/13
0% Branches 0/6
0% Functions 0/1
0% Lines 0/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27

     import { Color } from "../../core/Color";

    export type Uniform = Record<any, { type?: unknown; value?: unknown }>

    export function clone(
      uniforms_src: Uniform
    ) {
      let uniforms_clone: Uniform = {};

      for (const u in uniforms_src) {
        uniforms_clone[u] = {};
        uniforms_clone[u].type = uniforms_src[u].type;

        var srcValue = uniforms_src[u].value;

        if (srcValue instanceof Color) uniforms_clone[u].value = srcValue.clone();
        else if (typeof srcValue === "number") uniforms_clone[u].value = srcValue;
        else if (srcValue instanceof Array) uniforms_clone[u].value = [];
        else
          console.error(
            "Error copying shader uniforms from ShaderLib: unknown type for uniform"
          );
      }

      return uniforms_clone;
    }