public static uint PackSNorm(uint bitmask, float value) { float num = bitmask >> 1; value *= num; return((uint)((int)PackUtils.ClampAndRound(value, -num, num) & (int)bitmask)); }
public static uint PackSigned(uint bitmask, float value) { float num = bitmask >> 1; float min = -num - 1f; return((uint)((int)PackUtils.ClampAndRound(value, min, num) & (int)bitmask)); }
private static uint PackHelper(float vectorX, float vectorY, float vectorZ, float vectorW) { uint num = PackUtils.PackUNorm(255f, vectorX); uint num2 = PackUtils.PackUNorm(255f, vectorY) << 8; uint num3 = PackUtils.PackUNorm(255f, vectorZ) << 16; uint num4 = PackUtils.PackUNorm(255f, vectorW) << 24; return(num | num2 | num3 | num4); }
public Vector4 ToVector4() { Vector4 result; result.X = PackUtils.UnpackUNorm(255u, this.packedValue); result.Y = PackUtils.UnpackUNorm(255u, this.packedValue >> 8); result.Z = PackUtils.UnpackUNorm(255u, this.packedValue >> 16); result.W = PackUtils.UnpackUNorm(255u, this.packedValue >> 24); return(result); }
public static Color Lerp(Color value1, Color value2, float amount) { uint num = value1.packedValue; uint num2 = value2.packedValue; int num3 = (int)((byte)num); int num4 = (int)((byte)(num >> 8)); int num5 = (int)((byte)(num >> 16)); int num6 = (int)((byte)(num >> 24)); int num7 = (int)((byte)num2); int num8 = (int)((byte)(num2 >> 8)); int num9 = (int)((byte)(num2 >> 16)); int num10 = (int)((byte)(num2 >> 24)); int num11 = (int)PackUtils.PackUNorm(65536f, amount); int num12 = num3 + ((num7 - num3) * num11 >> 16); int num13 = num4 + ((num8 - num4) * num11 >> 16); int num14 = num5 + ((num9 - num5) * num11 >> 16); int num15 = num6 + ((num10 - num6) * num11 >> 16); Color result; result.packedValue = (uint)(num12 | num13 << 8 | num14 << 16 | num15 << 24); return(result); }
public static uint PackUnsigned(float bitmask, float value) { return((uint)PackUtils.ClampAndRound(value, 0f, bitmask)); }
public static uint PackUNorm(float bitmask, float value) { value *= bitmask; return((uint)PackUtils.ClampAndRound(value, 0f, bitmask)); }