UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

26 lines (25 loc) 962 B
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{glsl as o}from"../../shaderModules/glsl.js";function a(a){a.code.add(o`const float MAX_RGBA4_FLOAT = 15.0 / 16.0 + 15.0 / 16.0 / 16.0 + 15.0 / 16.0 / 16.0 / 16.0 + 15.0 / 16.0 / 16.0 / 16.0 / 16.0; const vec4 FIXED_POINT_FACTORS_RGBA4 = vec4(1.0, 16.0, 16.0 * 16.0, 16.0 * 16.0 * 16.0); vec4 floatToRgba4(const float value) { float valueInValidDomain = clamp(value, 0.0, MAX_RGBA4_FLOAT); vec4 fixedPointU4 = floor(fract(valueInValidDomain * FIXED_POINT_FACTORS_RGBA4) * 16.0); const float toU4AsFloat = 1.0 / 15.0; return fixedPointU4 * toU4AsFloat; } const vec4 RGBA4_2_FLOAT_FACTORS = vec4( 15.0 / (16.0), 15.0 / (16.0 * 16.0), 15.0 / (16.0 * 16.0 * 16.0), 15.0 / (16.0 * 16.0 * 16.0 * 16.0) ); float rgba4ToFloat(vec4 rgba) { return dot(rgba, RGBA4_2_FLOAT_FACTORS); }`)}export{a as Rgba4FloatEncoding};