UNPKG

@luma.gl/shadertools

Version:

Shader module system for luma.gl

82 lines (69 loc) 2.31 kB
// luma.gl // SPDX-License-Identifier: MIT // Copyright (c) vis.gl contributors const GLSL_UNIFORMS = /* glsl */ `\ layout(std140) uniform floatColorsUniforms { float useByteColors; } floatColors; vec3 floatColors_normalize(vec3 inputColor) { return floatColors.useByteColors > 0.5 ? inputColor / 255.0 : inputColor; } vec4 floatColors_normalize(vec4 inputColor) { return floatColors.useByteColors > 0.5 ? inputColor / 255.0 : inputColor; } vec4 floatColors_premultiplyAlpha(vec4 inputColor) { return vec4(inputColor.rgb * inputColor.a, inputColor.a); } vec4 floatColors_unpremultiplyAlpha(vec4 inputColor) { return inputColor.a > 0.0 ? vec4(inputColor.rgb / inputColor.a, inputColor.a) : vec4(0.0); } vec4 floatColors_premultiply_alpha(vec4 inputColor) { return floatColors_premultiplyAlpha(inputColor); } vec4 floatColors_unpremultiply_alpha(vec4 inputColor) { return floatColors_unpremultiplyAlpha(inputColor); } `; const WGSL_UNIFORMS = /* wgsl */ `\ struct floatColorsUniforms { useByteColors: f32 }; @group(0) @binding(auto) var<uniform> floatColors : floatColorsUniforms; fn floatColors_normalize(inputColor: vec3<f32>) -> vec3<f32> { return select(inputColor, inputColor / 255.0, floatColors.useByteColors > 0.5); } fn floatColors_normalize4(inputColor: vec4<f32>) -> vec4<f32> { return select(inputColor, inputColor / 255.0, floatColors.useByteColors > 0.5); } fn floatColors_premultiplyAlpha(inputColor: vec4<f32>) -> vec4<f32> { return vec4<f32>(inputColor.rgb * inputColor.a, inputColor.a); } fn floatColors_unpremultiplyAlpha(inputColor: vec4<f32>) -> vec4<f32> { return select( vec4<f32>(0.0), vec4<f32>(inputColor.rgb / inputColor.a, inputColor.a), inputColor.a > 0.0 ); } fn floatColors_premultiply_alpha(inputColor: vec4<f32>) -> vec4<f32> { return floatColors_premultiplyAlpha(inputColor); } fn floatColors_unpremultiply_alpha(inputColor: vec4<f32>) -> vec4<f32> { return floatColors_unpremultiplyAlpha(inputColor); } `; export const floatColors = { name: 'floatColors', props: {}, uniforms: {}, vs: GLSL_UNIFORMS, fs: GLSL_UNIFORMS, source: WGSL_UNIFORMS, uniformTypes: { useByteColors: 'f32' }, defaultUniforms: { useByteColors: true } }; //# sourceMappingURL=float-colors.js.map