public void Draw(RenderComposer composer) { _rendered = 0; _drawMemory.Clear(); var rect = new Rectangle( Engine.Renderer.Camera.ScreenToWorld(Vector2.Zero), Engine.Renderer.Camera.ScreenToWorld(Engine.Renderer.DrawBuffer.Size) * 2 // Engine.Configuration.RenderSize * (Engine.Renderer.Scale - (Engine.Renderer.IntScale - 1)) / Engine.Renderer.Camera.Zoom ); quadTree.GetObjects(rect, ref _drawMemory); composer.RenderOutline(new Vector3(rect.Position, 0f), rect.Size, Color.CornflowerBlue, 2); _rendered = _drawMemory.Count; Engine.Log.Info("\t" + "Mouse position \t" + Engine.Host.MousePosition, "TAAAG"); // ReSharper disable once ForCanBeConvertedToForeach for (var i = 0; i < _drawMemory.Count; i++) { var tile = _drawMemory[i]; var c = Color.White.ToUint(); var a = composer.GetBatch(); var data = a.GetData(_tileTexture.Texture); data[0].Vertex = tile.Vertex0; data[0].Color = c; data[0].UV = Vector2.Zero; data[1].Vertex = tile.Vertex1; data[1].Color = c; data[1].UV = new Vector2(1, 0); data[2].Vertex = tile.Vertex2; data[2].Color = c; data[2].UV = new Vector2(1, 1); data[3].Vertex = tile.Vertex3; data[3].Color = c; data[3].UV = new Vector2(0, 1); } composer.SetDepthTest(false); composer.SetUseViewMatrix(false); composer.RenderLine(new Vector2(20, 20), new Vector2(20, 30), Color.Green, 2); composer.RenderLine(new Vector2(20, 20), new Vector2(30, 20), Color.Red, 2); composer.RenderLine(new Vector3(20, 20, 0), new Vector3(20, 20, 30), Color.Blue, 10); RenderGui(composer); }
private void RenderGui(RenderComposer composer) { composer.SetUseViewMatrix(false); composer.SetDepthTest(false); ImGui.NewFrame(); ImGui.Begin("InfoBox", ImGuiWindowFlags.AlwaysAutoResize); ImGui.Text("Camera " + Engine.Renderer.Camera.Position + " | @z: " + Engine.Renderer.Camera.Zoom); ImGui.Text("RenderTileCount [" + _rendered + "]"); ImGui.End(); composer.RenderToolsMenu(_menu); _menu.Render(composer); composer.RenderUI(); }
public static void RenderToolsMenu(this RenderComposer composer) { if (ToolsWindowManager == null) { ToolsWindowManager = new WindowManager(); } composer.SetDepthTest(false); composer.SetUseViewMatrix(false); ToolsWindowManager.Update(); ImGui.NewFrame(); RenderToolsMenu(composer, ToolsWindowManager); ToolsWindowManager.Render(composer); composer.RenderUI(); }
protected override bool RenderInternal(RenderComposer c) { c.SetUseViewMatrix(false); c.SetDepthTest(false); ImGui.NewFrame(); ImGui.BeginMainMenuBar(); GetImGuiMetrics(); ImGuiIOPtr io = ImGui.GetIO(); _captureMouse = io.WantCaptureMouse; _captureKeyboard = io.WantCaptureKeyboard; _captureText = io.WantTextInput; var fullScreenEditorOpen = false; if (Children != null) { for (var i = 0; i < Children.Count; i++) { UIBaseWindow child = Children[i]; if (child.Size == c.CurrentTarget.Size) { // todo: maybe something more explicit, like a bool in ImGuiWindow? fullScreenEditorOpen = true; } } } InputTransparent = !_captureMouse && !_captureKeyboard && !fullScreenEditorOpen; if (ImGui.BeginMenu("Audio")) { if (ImGui.MenuItem("Audio Preview")) { AddLegacyWindow(new AudioMixer()); } ImGui.EndMenu(); } if (ImGui.BeginMenu("Art")) { if (ImGui.MenuItem("Animation Editor")) { AddLegacyWindow(new AnimationEditor()); } if (ImGui.MenuItem("Animation Editor New (WIP)")) { AddChild(new Animation2DEditor()); } if (ImGui.MenuItem("Rogue Alpha Remover")) { AddLegacyWindow(new RogueAlphaRemoval()); } if (ImGui.MenuItem("Palette Editor")) { AddLegacyWindow(new PaletteEditor()); } if (ImGui.MenuItem("Font Preview")) { AddLegacyWindow(new FontPreview()); } if (ImGui.MenuItem("PNG Exporter")) { AddLegacyWindow(new PngExporter()); } if (ImGui.MenuItem("3D Object Viewer")) { AddChild(new Viewer3D()); } ImGui.EndMenu(); } if (ImGui.BeginMenu("Gameplay")) { if (ImGui.MenuItem("Map Editor")) { AddChild(new MapEditor()); } if (ImGui.MenuItem("Tmx Viewer")) { AddChild(new TmxViewer()); } #if DEBUG if (ImGui.MenuItem("Collision Viewer")) { AddLegacyWindow(new CollisionViewer()); } #else ImGui.MenuItem("Collision Viewer [Requires DEBUG]"); #endif if (ImGui.MenuItem("UI Editor")) { AddChild(new UIEditorWindow()); } ImGui.EndMenu(); } if (ImGui.BeginMenu("Engine")) { if (ImGui.MenuItem("Performance Monitor")) { AddChild(new PerformanceMonitor()); } if (ImGui.MenuItem("Memory Viewer")) { AddLegacyWindow(new MemoryViewer()); } #if DEBUG if (ImGui.MenuItem("Coroutine Viewer")) { AddLegacyWindow(new CoroutineViewer()); } #else ImGui.MenuItem("Coroutine Viewer [Requires DEBUG]"); #endif if (ImGui.MenuItem("Gpu Texture Viewer")) { AddLegacyWindow(new GpuTextureViewer()); } ImGui.EndMenu(); } if (ImGui.BeginMenu("Game")) { if (ImGui.MenuItem("Open Folder")) { Process.Start("explorer.exe", "."); } foreach (KeyValuePair <string, Action <UIBaseWindow> > tool in ToolsManager.CustomToolsFactory) { if (ImGui.MenuItem(tool.Key)) { tool.Value(this); } } ImGui.EndMenu(); } ImGui.EndMainMenuBar(); LegacyWindowManager.Update(); LegacyWindowManager.Render(c); if (Children == null) { AfterRenderChildren(c); } return(true); }