protected void TestAcceptanceFor(IRenderer renderer, IGuiElement guiElement)
        {
            var hardware = new NullHardware(1024, 768);
            var stage    = new GuiStage();

            stage.AddChild(guiElement);

            // Layout and Render
            stage.CalculateLayout(hardware);
            stage.ProcessInteraction(hardware);
            stage.Render(renderer);

            var processingData = guiElement.GetLayoutProcessingData();

            // drawing geometry
            Assert.AreEqual(processingData.DrawingGeometry.X, 50);
            Assert.AreEqual(processingData.DrawingGeometry.Y, 75);
            Assert.AreEqual(processingData.DrawingGeometry.Width, 100);
            Assert.AreEqual(processingData.DrawingGeometry.Height, 200);
            // absolute geometry
            Assert.AreEqual(processingData.AbsoluteGeometry.X, 50);
            Assert.AreEqual(processingData.AbsoluteGeometry.Y, 75);
            Assert.AreEqual(processingData.AbsoluteGeometry.Width, 100);
            Assert.AreEqual(processingData.AbsoluteGeometry.Height, 200);
            // clip rect
            Assert.AreEqual(processingData.ClipRect.X, 50);
            Assert.AreEqual(processingData.ClipRect.Y, 75);
            Assert.AreEqual(processingData.ClipRect.Width, 100);
            Assert.AreEqual(processingData.AbsoluteGeometry.Height, 200);
        }
Ejemplo n.º 2
0
 // called to handle the gui
 void OnGUI()
 {
     if (_stage != null)
     {
         // take care that our gui is drawn
         _stage.Render(_renderer, _hardware, Event.current.type == EventType.Layout);
     }
 }
        public void OnGUI()
        {
            if (IsConnected())
            {
                if (_a++ % 1000 == 0)
                {
                    networkView.RPC("RpcPing", RPCMode.Others, "Ping " + _a);
                }

                // TODO: The next line is neccessary to see the overlays on the element under the mouse,
                //       because we need to call DebugWindow.Draw on every OnGUI() which is not done in Remote-Mode.
                //       -> that is not very nice because it eats performance. There is a better solution.
                _remoteStage.Render(_debugRenderer);

                if ((DateTime.Now - _last).TotalMilliseconds > 66)
                {
                    _last = DateTime.Now;
                    Render();
                }
            }
        }
Ejemplo n.º 4
0
 public override void UpdateGui()
 {
     if (Event.current.type == EventType.Layout)
     {
         GuiStage.CalculateLayout(Hardware);
         GuiStage.ProcessInteraction(Hardware);
     }
     else
     {
         GuiStage.Render(Renderer);
     }
 }