Esempio n. 1
0
        public static uint PackSNorm(uint bitmask, float value)
        {
            float num = bitmask >> 1;

            value *= num;
            return((uint)((int)PackUtils.ClampAndRound(value, -num, num) & (int)bitmask));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 public static uint PackUnsigned(float bitmask, float value)
 {
     return((uint)PackUtils.ClampAndRound(value, 0f, bitmask));
 }
Esempio n. 7
0
 public static uint PackUNorm(float bitmask, float value)
 {
     value *= bitmask;
     return((uint)PackUtils.ClampAndRound(value, 0f, bitmask));
 }