private void UpdateDisplayText(GameTime time) //,Matrix view, Matrix projection
        {
            accUpdateTime += (float)time.ElapsedGameTime.TotalSeconds;
            if (accUpdateTime < 0.1f)
            {
                return;
            }

            accUpdateTime = 0.0f;

            int contactCount = 0;

            foreach (Arbiter ar in World.ArbiterMap.Arbiters)
            {
                contactCount += ar.ContactList.Count;
            }

            Display.DisplayText[1] = World.CollisionSystem.ToString();

            Display.DisplayText[0] = "Current Scene: " + PhysicScenes[currentScene].ToString();
            //
            Display.DisplayText[2] = "Arbitercount: " + World.ArbiterMap.Arbiters.Count.ToString() + ";" + " Contactcount: " + contactCount.ToString();
            Display.DisplayText[3] = "Islandcount: " + World.Islands.Count.ToString();
            Display.DisplayText[4] = "Bodycount: " + World.RigidBodies.Count + " (" + activeBodies.ToString() + ")";
            Display.DisplayText[5] = (multithread) ? "Multithreaded" : "Single Threaded";


            int    entries = (int)Jitter.World.DebugType.Num;
            double total   = 0;

            for (int i = 0; i < entries; i++)
            {
                World.DebugType type = (World.DebugType)i;

                Display.DisplayText[8 + i] = type.ToString() + ": " +
                                             ((double)World.DebugTimes[i]).ToString("0.00");

                total += World.DebugTimes[i];
            }

            Display.DisplayText[8 + entries] = "------------------------------";
            Display.DisplayText[9 + entries] = "Total Physics Time: " + total.ToString("0.00");

            //float tot = (float)(1000.0 / total);
            //string test = (int)tot + "";

            //Console.WriteLine(tot + "");

            Display.DisplayText[10 + entries] = "Physics Framerate: " + (int)(1000.0 / total) + " fps"; // + (1000.0 / total).ToString("0")



            /*
             #if(WINDOWS)
             * Display.DisplayText[6] = "gen0: " + GC.CollectionCount(0).ToString() +
             *  "  gen1: " + GC.CollectionCount(1).ToString() +
             *  "  gen2: " + GC.CollectionCount(2).ToString();
             #endif
             */
        }
예제 #2
0
        public void UpdatePhysicsInformation(GameTime gameTime, World world)
        {
            _accUpdateTime += (float)gameTime.ElapsedGameTime.TotalSeconds;
            if (_accUpdateTime < 0.1f)
            {
                return;
            }

            _accUpdateTime = 0.0f;

            int contactCount = 0;
            int activeBodies = 0;

            // Count contacts
            foreach (Arbiter ar in world.ArbiterMap.Arbiters)
            {
                contactCount += ar.ContactList.Count;
            }

            // Count active bodies
            foreach (RigidBody body in world.RigidBodies)
            {
                if (body.IsActive)
                {
                    activeBodies++;
                }
            }

            _displayText[1] = world.CollisionSystem.ToString();
            _displayText[2] = "Arbitercount: " + world.ArbiterMap.Arbiters.Count + ";" + " Contactcount: " + contactCount;
            _displayText[3] = "Islandcount: " + world.Islands.Count;
            _displayText[4] = "Bodycount: " + world.RigidBodies.Count + " (" + activeBodies + ")";
            _displayText[6] = "gen0: " + GC.CollectionCount(0)
                              + "  gen1: " + GC.CollectionCount(1)
                              + "  gen2: " + GC.CollectionCount(2);

            int    entries = (int)World.DebugType.Num;
            double total   = 0;

            for (int i = 0; i < entries; i++)
            {
                World.DebugType type = (World.DebugType)i;

                _displayText[8 + i] = type + ": " + world.DebugTimes[i].ToString("0.00");

                total += world.DebugTimes[i];
            }

            _displayText[8 + entries] = "------------------------------";
            _displayText[9 + entries] = "Total Physics Time: " + total.ToString("0.00");

            float frameRate = (float)(1000.0d / total);

            _displayText[10 + entries] = "Physics Framerate: " + (float.IsInfinity(frameRate) ? "-" : frameRate.ToString("0")) + " fps";
        }
예제 #3
0
        private void UpdateDisplayText(GameTime time)
        {
            accUpdateTime += (float)time.ElapsedGameTime.TotalSeconds;
            if (accUpdateTime < 0.1f)
            {
                return;
            }

            accUpdateTime = 0.0f;

            int contactCount = 0;

            foreach (Arbiter ar in World.ArbiterMap.Arbiters)
            {
                contactCount += ar.ContactList.Count;
            }

            Display.DisplayText[1] = World.CollisionSystem.ToString();

            Display.DisplayText[0] = "Current Scene: " + PhysicScenes[currentScene].ToString();
            //
            Display.DisplayText[2] = "Arbitercount: " + World.ArbiterMap.Arbiters.Count.ToString() + ";" + " Contactcount: " + contactCount.ToString();
            Display.DisplayText[3] = "Islandcount: " + World.Islands.Count.ToString();
            Display.DisplayText[4] = "Bodycount: " + World.RigidBodies.Count + " (" + activeBodies.ToString() + ")";
            Display.DisplayText[5] = (multithread) ? "Multithreaded" : "Single Threaded";

            int    entries = (int)Jitter2D.World.DebugType.Num;
            double total   = 0;

            for (int i = 0; i < entries; i++)
            {
                World.DebugType type = (World.DebugType)i;

                Display.DisplayText[8 + i] = type.ToString() + ": " +
                                             ((double)World.DebugTimes[i]).ToString("0.00");

                total += World.DebugTimes[i];
            }

            Display.DisplayText[8 + entries]  = "------------------------------";
            Display.DisplayText[9 + entries]  = "Total Physics Time: " + total.ToString("0.00");
            Display.DisplayText[10 + entries] = "Physics Framerate: " + (1000.0d / total).ToString("0") + " fps";


            Display.DisplayText[6] = "gen0: " + GC.CollectionCount(0).ToString() +
                                     "  gen1: " + GC.CollectionCount(1).ToString() +
                                     "  gen2: " + GC.CollectionCount(2).ToString() + " total mem: " + (GC.GetTotalMemory(false) / 1024).ToString() + "KB";
        }