declare const _default: "\n\n// RG32U: (start, accumulatedSum)\nvar uIntervalsTexture: texture_2d<u32>;\nuniform uNumIntervals: i32;\nuniform uTextureWidth: i32;\nuniform uActiveSplats: i32;\n\nfn getCoordFromIndex(index: i32, textureWidth: i32) -> vec2i {\n    return vec2i(index % textureWidth, index / textureWidth);\n}\n\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n    var output: FragmentOutput;\n    \n    let coord = vec2i(i32(input.position.x), i32(input.position.y));\n    let targetIndex = coord.y * uniform.uTextureWidth + coord.x;\n    \n    if (targetIndex >= uniform.uActiveSplats) {\n        output.color = 0u;\n        return output;\n    }\n    \n    // Binary search through accumulated sums (G channel)\n    var left = 0i;\n    var right = uniform.uNumIntervals - 1;\n    var intervalIndex = 0i;\n    \n    while (left <= right) {\n        let mid = (left + right) / 2;\n        \n        let textureWidth = i32(textureDimensions(uIntervalsTexture, 0).x);\n        let intervalCoord = getCoordFromIndex(mid, textureWidth);\n        let intervalData = textureLoad(uIntervalsTexture, intervalCoord, 0).rg;\n        \n        let accumulatedSum = intervalData.g;  // G channel\n        \n        if (u32(targetIndex) < accumulatedSum) {\n            intervalIndex = mid;\n            right = mid - 1;\n        } else {\n            left = mid + 1;\n        }\n    }\n    \n    // Get interval data (both start and accumulated sum in one fetch)\n    let textureWidth = i32(textureDimensions(uIntervalsTexture, 0).x);\n    let intervalCoord = getCoordFromIndex(intervalIndex, textureWidth);\n    let intervalData = textureLoad(uIntervalsTexture, intervalCoord, 0).rg;\n    \n    let intervalStart = intervalData.r;      // R channel\n    let currentAccSum = intervalData.g;      // G channel\n    \n    // Get previous accumulated sum\n    var prevAccSum = 0u;\n    if (intervalIndex > 0) {\n        let prevCoord = getCoordFromIndex(intervalIndex - 1, textureWidth);\n        prevAccSum = textureLoad(uIntervalsTexture, prevCoord, 0).g;\n    }\n    \n    // Calculate original splat index\n    let offsetInInterval = u32(targetIndex) - prevAccSum;\n    let originalIndex = intervalStart + offsetInInterval;\n    \n    output.color = originalIndex;\n    return output;\n}\n";
export default _default;
