|
@@ -34,6 +34,11 @@ uniform sampler2D tCumulativeSum;
|
|
|
|
|
|
uniform bool uLittleEndian;
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
float shiftRight (float v, float amt) {
|
|
|
v = floor(v) + 0.5;
|
|
|
return floor(v / exp2(amt));
|
|
@@ -48,8 +53,7 @@ float extractBits (float num, float from, float to) {
|
|
|
from = floor(from + 0.5); to = floor(to + 0.5);
|
|
|
return maskLast(shiftRight(num, from), to - from);
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
vec4 floatToRgba(float texelFloat) {
|
|
|
if (texelFloat == 0.0) return vec4(0, 0, 0, 0);
|
|
|
float sign = texelFloat > 0.0 ? 0.0 : 1.0;
|
|
@@ -73,6 +77,23 @@ vec4 floatToRgba(float texelFloat) {
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
ivec4 floatsToBytes(vec4 inputFloats) {
|
|
|
ivec4 bytes = ivec4(inputFloats * 255.0);
|
|
|
return (
|
|
@@ -133,7 +154,6 @@ float bitsToFloat(bool bits[32]) {
|
|
|
return signBit * mantissa * exp2(exponent - exponentBias - 23.0);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
float rgbaToFloat(vec4 texelRGBA) {
|
|
|
ivec4 rgbaBytes = floatsToBytes(texelRGBA);
|
|
|
bool bits[32];
|