@luma.gl/shadertools
Version:
Shader module system for luma.gl
82 lines (69 loc) • 2.31 kB
JavaScript
// 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