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); }
// 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(); } } }
public override void UpdateGui() { if (Event.current.type == EventType.Layout) { GuiStage.CalculateLayout(Hardware); GuiStage.ProcessInteraction(Hardware); } else { GuiStage.Render(Renderer); } }