Newer
Older
qd_cnooc_front / static / Cesium / Shaders / Builtin / Functions / branchFreeTernary.js
[wangxitong] on 27 Nov 2021 2 KB first commit
//This file is automatically rebuilt by the Cesium build process.
export default "/**\n\
 * Branchless ternary operator to be used when it's inexpensive to explicitly\n\
 * evaluate both possibilities for a float expression.\n\
 *\n\
 * @name czm_branchFreeTernary\n\
 * @glslFunction\n\
 *\n\
 * @param {bool} comparison A comparison statement\n\
 * @param {float} a Value to return if the comparison is true.\n\
 * @param {float} b Value to return if the comparison is false.\n\
 *\n\
 * @returns {float} equivalent of comparison ? a : b\n\
 */\n\
float czm_branchFreeTernary(bool comparison, float a, float b) {\n\
    float useA = float(comparison);\n\
    return a * useA + b * (1.0 - useA);\n\
}\n\
\n\
/**\n\
 * Branchless ternary operator to be used when it's inexpensive to explicitly\n\
 * evaluate both possibilities for a vec2 expression.\n\
 *\n\
 * @name czm_branchFreeTernary\n\
 * @glslFunction\n\
 *\n\
 * @param {bool} comparison A comparison statement\n\
 * @param {vec2} a Value to return if the comparison is true.\n\
 * @param {vec2} b Value to return if the comparison is false.\n\
 *\n\
 * @returns {vec2} equivalent of comparison ? a : b\n\
 */\n\
vec2 czm_branchFreeTernary(bool comparison, vec2 a, vec2 b) {\n\
    float useA = float(comparison);\n\
    return a * useA + b * (1.0 - useA);\n\
}\n\
\n\
/**\n\
 * Branchless ternary operator to be used when it's inexpensive to explicitly\n\
 * evaluate both possibilities for a vec3 expression.\n\
 *\n\
 * @name czm_branchFreeTernary\n\
 * @glslFunction\n\
 *\n\
 * @param {bool} comparison A comparison statement\n\
 * @param {vec3} a Value to return if the comparison is true.\n\
 * @param {vec3} b Value to return if the comparison is false.\n\
 *\n\
 * @returns {vec3} equivalent of comparison ? a : b\n\
 */\n\
vec3 czm_branchFreeTernary(bool comparison, vec3 a, vec3 b) {\n\
    float useA = float(comparison);\n\
    return a * useA + b * (1.0 - useA);\n\
}\n\
\n\
/**\n\
 * Branchless ternary operator to be used when it's inexpensive to explicitly\n\
 * evaluate both possibilities for a vec4 expression.\n\
 *\n\
 * @name czm_branchFreeTernary\n\
 * @glslFunction\n\
 *\n\
 * @param {bool} comparison A comparison statement\n\
 * @param {vec3} a Value to return if the comparison is true.\n\
 * @param {vec3} b Value to return if the comparison is false.\n\
 *\n\
 * @returns {vec3} equivalent of comparison ? a : b\n\
 */\n\
vec4 czm_branchFreeTernary(bool comparison, vec4 a, vec4 b) {\n\
    float useA = float(comparison);\n\
    return a * useA + b * (1.0 - useA);\n\
}\n\
";