{"version":3,"file":"createIndicesForQuads.mjs","sources":["../../../../../src/scene/particle-container/shared/utils/createIndicesForQuads.ts"],"sourcesContent":["/**\n * Generic Mask Stack data structure\n * @function createIndicesForQuads\n * @param {number} size - Number of quads\n * @param {Uint16Array|Uint32Array} [outBuffer] - Buffer for output, length has to be `6 * size`\n * @returns {Uint16Array|Uint32Array} - Resulting index buffer\n * @internal\n */\nexport function createIndicesForQuads(\n    size: number,\n    outBuffer: Uint16Array | Uint32Array | null = null\n): Uint16Array | Uint32Array\n{\n    // the total number of indices in our array, there are 6 points per quad.\n    const totalIndices = size * 6;\n\n    // Check if we need to use Uint32Array\n    if (totalIndices > 65535)\n    {\n        outBuffer ||= new Uint32Array(totalIndices); // Use Uint32Array if needed\n    }\n    else\n    {\n        outBuffer ||= new Uint16Array(totalIndices);\n    }\n\n    if (outBuffer.length !== totalIndices)\n    {\n        throw new Error(`Out buffer length is incorrect, got ${outBuffer.length} and expected ${totalIndices}`);\n    }\n\n    // fill the indices with the quads to draw\n    for (let i = 0, j = 0; i < totalIndices; i += 6, j += 4)\n    {\n        outBuffer[i + 0] = j + 0;\n        outBuffer[i + 1] = j + 1;\n        outBuffer[i + 2] = j + 2;\n        outBuffer[i + 3] = j + 0;\n        outBuffer[i + 4] = j + 2;\n        outBuffer[i + 5] = j + 3;\n    }\n\n    return outBuffer;\n}\n"],"names":[],"mappings":";AAQO,SAAS,qBAAA,CACZ,IAAA,EACA,SAAA,GAA8C,IAAA,EAElD;AAEI,EAAA,MAAM,eAAe,IAAA,GAAO,CAAA;AAG5B,EAAA,IAAI,eAAe,KAAA,EACnB;AACI,IAAA,SAAA,KAAA,SAAA,GAAc,IAAI,YAAY,YAAY,CAAA,CAAA;AAAA,EAC9C,CAAA,MAEA;AACI,IAAA,SAAA,KAAA,SAAA,GAAc,IAAI,YAAY,YAAY,CAAA,CAAA;AAAA,EAC9C;AAEA,EAAA,IAAI,SAAA,CAAU,WAAW,YAAA,EACzB;AACI,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oCAAA,EAAuC,UAAU,MAAM,CAAA,cAAA,EAAiB,YAAY,CAAA,CAAE,CAAA;AAAA,EAC1G;AAGA,EAAA,KAAA,IAAS,CAAA,GAAI,GAAG,CAAA,GAAI,CAAA,EAAG,IAAI,YAAA,EAAc,CAAA,IAAK,CAAA,EAAG,CAAA,IAAK,CAAA,EACtD;AACI,IAAA,SAAA,CAAU,CAAA,GAAI,CAAC,CAAA,GAAI,CAAA,GAAI,CAAA;AACvB,IAAA,SAAA,CAAU,CAAA,GAAI,CAAC,CAAA,GAAI,CAAA,GAAI,CAAA;AACvB,IAAA,SAAA,CAAU,CAAA,GAAI,CAAC,CAAA,GAAI,CAAA,GAAI,CAAA;AACvB,IAAA,SAAA,CAAU,CAAA,GAAI,CAAC,CAAA,GAAI,CAAA,GAAI,CAAA;AACvB,IAAA,SAAA,CAAU,CAAA,GAAI,CAAC,CAAA,GAAI,CAAA,GAAI,CAAA;AACvB,IAAA,SAAA,CAAU,CAAA,GAAI,CAAC,CAAA,GAAI,CAAA,GAAI,CAAA;AAAA,EAC3B;AAEA,EAAA,OAAO,SAAA;AACX;;;;"}