{"version":3,"file":"ensureIsBuffer.mjs","sources":["../../../../../../src/rendering/renderers/shared/geometry/utils/ensureIsBuffer.ts"],"sourcesContent":["import { Buffer } from '../../buffer/Buffer';\nimport { BufferUsage } from '../../buffer/const';\n\nimport type { TypedArray } from '../../buffer/Buffer';\n\n/**\n * Converts something into a buffer. If it is already a buffer it will pass it through\n * if it is a number array it will convert it to a float32 array before being passed into a buffer\n * the buffer will be created with the correct usage flags for geometry attributes\n * @param buffer - number array\n * @param index - is this an index buffer?\n * @returns a buffer\n * @memberof rendering\n */\nexport function ensureIsBuffer(buffer: Buffer | TypedArray | number[], index: boolean): Buffer\n{\n    if (!(buffer instanceof Buffer))\n    {\n        let usage: number = index ? BufferUsage.INDEX : BufferUsage.VERTEX;\n\n        // its an array!\n        if (buffer instanceof Array)\n        {\n            if (index)\n            {\n                buffer = new Uint32Array(buffer);\n                usage = BufferUsage.INDEX | BufferUsage.COPY_DST;\n            }\n\n            else\n            {\n                buffer = new Float32Array(buffer);\n                usage = BufferUsage.VERTEX | BufferUsage.COPY_DST;\n            }\n        }\n\n        buffer = new Buffer({\n            data: buffer,\n            label: index ? 'index-mesh-buffer' : 'vertex-mesh-buffer',\n            usage\n        });\n    }\n\n    return buffer;\n}\n"],"names":[],"mappings":";;;;AAcgB,SAAA,cAAA,CAAe,QAAwC,KACvE,EAAA;AACI,EAAI,IAAA,EAAE,kBAAkB,MACxB,CAAA,EAAA;AACI,IAAA,IAAI,KAAgB,GAAA,KAAA,GAAQ,WAAY,CAAA,KAAA,GAAQ,WAAY,CAAA,MAAA,CAAA;AAG5D,IAAA,IAAI,kBAAkB,KACtB,EAAA;AACI,MAAA,IAAI,KACJ,EAAA;AACI,QAAS,MAAA,GAAA,IAAI,YAAY,MAAM,CAAA,CAAA;AAC/B,QAAQ,KAAA,GAAA,WAAA,CAAY,QAAQ,WAAY,CAAA,QAAA,CAAA;AAAA,OAI5C,MAAA;AACI,QAAS,MAAA,GAAA,IAAI,aAAa,MAAM,CAAA,CAAA;AAChC,QAAQ,KAAA,GAAA,WAAA,CAAY,SAAS,WAAY,CAAA,QAAA,CAAA;AAAA,OAC7C;AAAA,KACJ;AAEA,IAAA,MAAA,GAAS,IAAI,MAAO,CAAA;AAAA,MAChB,IAAM,EAAA,MAAA;AAAA,MACN,KAAA,EAAO,QAAQ,mBAAsB,GAAA,oBAAA;AAAA,MACrC,KAAA;AAAA,KACH,CAAA,CAAA;AAAA,GACL;AAEA,EAAO,OAAA,MAAA,CAAA;AACX;;;;"}