Esempio n. 1
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. 2
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. 3
0
            public static uint PackSNorm(uint bitmask, float value)
            {
                float single = (float)((float)(bitmask >> 1));

                value = value * single;
                return((uint)PackUtils.ClampAndRound(value, -single, single) & bitmask);
            }
Esempio n. 4
0
            public static uint PackSigned(uint bitmask, float value)
            {
                float single  = (float)((float)(bitmask >> 1));
                float single1 = -single - 1f;

                return((uint)PackUtils.ClampAndRound(value, single1, single) & bitmask);
            }
Esempio n. 5
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. 6
0
        private static uint PackHelper(float vectorX, float vectorY, float vectorZ, float vectorW)
        {
            uint num4 = PackUtils.PackUNorm(255f, vectorX);
            uint num3 = PackUtils.PackUNorm(255f, vectorY) << 8;
            uint num2 = PackUtils.PackUNorm(255f, vectorZ) << 0x10;
            uint num  = PackUtils.PackUNorm(255f, vectorW) << 0x18;

            return(((num4 | num3) | num2) | num);
        }
Esempio n. 7
0
        public Vector3 ToVector3()
        {
            Vector3 vector;

            vector.X = PackUtils.UnpackUNorm(0xff, this.packedValue);
            vector.Y = PackUtils.UnpackUNorm(0xff, this.packedValue >> 8);
            vector.Z = PackUtils.UnpackUNorm(0xff, this.packedValue >> 0x10);
            return(vector);
        }
Esempio n. 8
0
    public Vector3 ToVector3()
    {
        Vector3 result;

        result.X = PackUtils.UnpackUNorm(255u, this.packedValue);
        result.Y = PackUtils.UnpackUNorm(255u, this.packedValue >> 8);
        result.Z = PackUtils.UnpackUNorm(255u, this.packedValue >> 24);
        return(result);
    }
Esempio n. 9
0
        /// <summary>
        /// 获取该对象的ColorF表示
        /// </summary>
        /// <returns>对象的ColorF表示</returns>
        public ColorF ToColorF()
        {
            ColorF colorF;

            colorF.R = PackUtils.UnpackUNorm(0xff, this.packedValue);
            colorF.G = PackUtils.UnpackUNorm(0xff, this.packedValue >> 8);
            colorF.B = PackUtils.UnpackUNorm(0xff, this.packedValue >> 0x10);
            colorF.A = PackUtils.UnpackUNorm(0xff, this.packedValue >> 0x18);
            return(colorF);
        }
Esempio n. 10
0
        /// <summary>
        /// 颜色的线性插值
        /// </summary>
        /// <param name="value1">颜色四元组</param>
        /// <param name="value2">颜色四元组</param>
        /// <param name="amount">插值因子</param>
        /// <returns>颜色四元组</returns>
        public static Color32 Lerp(Color32 value1, Color32 value2, float amount)
        {
            Color32 color;
            uint    packedValue = value1.packedValue;
            uint    num2        = value2.packedValue;
            int     num7        = (byte)packedValue;
            int     num6        = (byte)(packedValue >> 8);
            int     num5        = (byte)(packedValue >> 0x10);
            int     num4        = (byte)(packedValue >> 0x18);
            int     num15       = (byte)num2;
            int     num14       = (byte)(num2 >> 8);
            int     num13       = (byte)(num2 >> 0x10);
            int     num12       = (byte)(num2 >> 0x18);
            int     num         = (int)PackUtils.PackUNorm(65536f, amount);
            int     num11       = num7 + (((num15 - num7) * num) >> 0x10);
            int     num10       = num6 + (((num14 - num6) * num) >> 0x10);
            int     num9        = num5 + (((num13 - num5) * num) >> 0x10);
            int     num8        = num4 + (((num12 - num4) * num) >> 0x10);

            color.packedValue = (uint)(((num11 | (num10 << 8)) | (num9 << 0x10)) | (num8 << 0x18));
            return(color);
        }
Esempio n. 11
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. 12
0
        public void MakePackage()
        {
            string logFile = QQnPath.Combine(LoggerPath, "QQn.TurtleMSBuild.tbLog");

            if (!File.Exists(logFile))
            {
                BuildInternal();
            }

            TBLogFile log = TBLogFile.Load(logFile);

            Assert.That(!string.IsNullOrEmpty(log.Project.Name));

            DebugReference reference = null;

            foreach (TBLogItem item in log.Configurations[0].ProjectOutput.Items)
            {
                if (!item.IsShared && !item.IsCopy)
                {
                    switch (Path.GetExtension(item.Src).ToUpperInvariant())
                    {
                    case ".PDB":
                    case ".DLL":
                        if (reference == null)
                        {
                            reference = AssemblyUtils.GetDebugReference(item.FullSrc);

                            Assert.That(reference, Is.Not.Null);
                            Assert.That(reference.PdbFile, Is.Not.Null);
                        }
                        else
                        {
                            DebugReference dr = AssemblyUtils.GetDebugReference(item.FullSrc);

                            Assert.That(dr, Is.Not.Null);
                            // Path does not have to equal; the pdb information contains the sourcepath (obj directory for c# code)
                            Assert.That(Path.GetFileName(dr.PdbFile), Is.EqualTo(Path.GetFileName(reference.PdbFile)));
                            Assert.That(dr.DebugId, Is.EqualTo(reference.DebugId));
                        }
                        break;
                    }
                }
            }

            Pack pack = null;

            Assert.That(PackUtils.TryCreatePack(log, out pack));

            string path = QQnPath.Combine(PackagePath, "QQn.TurtleMSBuild.tpZip");
            TPack  tp   = TPack.Create(path, pack);

            using (TPack pkg = TPack.OpenFrom(path, VerificationMode.Full))
                using (DirectoryMap dm = DirectoryMap.Get(ExtractPath))
                {
                    Assert.That(pkg, Is.Not.Null);

                    pkg.ExtractTo(dm);
                }

            using (TPack pkg = TPack.OpenFrom(path, VerificationMode.Full))
            {
                Assert.That(pkg, Is.Not.Null);

                pkg.ExtractTo(ExtractPath);
            }
        }
Esempio n. 13
0
 public static uint PackUnsigned(float bitmask, float value)
 {
     return((uint)PackUtils.ClampAndRound(value, 0f, bitmask));
 }
Esempio n. 14
0
 public static uint PackUNorm(float bitmask, float value)
 {
     value *= bitmask;
     return((uint)PackUtils.ClampAndRound(value, 0f, bitmask));
 }