示例#1
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);
        }
示例#2
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);
        }