playcanvas
Version:
PlayCanvas WebGL game engine
3 lines (2 loc) • 1.04 kB
TypeScript
declare const _default: "\n\n#ifndef FLOAT_AS_UINT\n#define FLOAT_AS_UINT\n\n// encode float value to RGBA8 representation (0.0-1.0 range)\nfn float2uint(value: f32) -> vec4f {\n let intBits = bitcast<u32>(value);\n return vec4f(\n f32((intBits >> 24u) & 0xffu),\n f32((intBits >> 16u) & 0xffu),\n f32((intBits >> 8u) & 0xffu),\n f32(intBits & 0xffu)\n ) / 255.0;\n}\n\n// decode RGBA8 value to float\nfn uint2float(value: vec4f) -> f32 {\n let rgba_u32 = vec4<u32>(value * 255.0);\n let intBits: u32 =\n (rgba_u32.r << 24u) |\n (rgba_u32.g << 16u) |\n (rgba_u32.b << 8u) |\n rgba_u32.a;\n return bitcast<f32>(intBits);\n}\n\n// store a single float value in vec4, assuming either RGBA8 or float renderable texture\nfn float2vec4(value: f32) -> vec4f {\n #if defined(CAPS_TEXTURE_FLOAT_RENDERABLE)\n return vec4f(value, 1.0, 1.0, 1.0);\n #else\n return float2uint(value);\n #endif\n}\n\n#endif // FLOAT_AS_UINT\n";
export default _default;