public override bool Draw() { bool doTabs = false; foreach (var t in openTabs) { if (t) { doTabs = true; break; } } var contentw = ImGui.GetContentRegionAvailableWidth(); if (doTabs) { ImGui.Columns(2, "##alecolumns", true); ImGui.BeginChild("##leftpanel"); if (openTabs[0]) { NodePanel(); } ImGui.EndChild(); ImGui.NextColumn(); } TabButtons(); ImGui.SameLine(); ImGui.BeginChild("##renderpanel"); //Fx management lastEffect = currentEffect; ImGui.Text("Effect:"); ImGui.SameLine(); ImGui.Combo("##effect", ref currentEffect, effectNames); if (currentEffect != lastEffect) { SetupRender(currentEffect); } ImGui.SameLine(); ImGui.Button("+"); ImGui.SameLine(); ImGui.Button("-"); ImGui.Separator(); //Viewport ImGui.BeginChild("##renderchild"); //Generate render target aleViewport.Begin(); DrawGL(aleViewport.RenderWidth, aleViewport.RenderHeight); //Display + Camera controls aleViewport.End(); //Action Bar if (ImGui.Button("Reset")) { instance.Reset(); } ImGui.SameLine(); ImGui.Text(string.Format("T: {0:0.000}", instance.GlobalTime)); ImGui.EndChild(); ImGui.EndChild(); return(true); }
public override bool Draw() { //Fx management lastEffect = currentEffect; ImGui.Text("Effect:"); ImGui.SameLine(); ImGui.Combo("##effect", ref currentEffect, effectNames); if (currentEffect != lastEffect) { SetupRender(currentEffect); } ImGui.SameLine(); ImGui.Button("+"); ImGui.SameLine(); ImGui.Button("-"); ImGui.Separator(); //Layout ImGui.Columns(2, "##alecolumns", true); ImGui.Text("Viewport"); ImGui.NextColumn(); ImGui.Text("Hierachy"); ImGui.Separator(); ImGui.NextColumn(); ImGui.BeginChild("##renderchild"); //Viewport Rendering var renderWidth = Math.Max(120, (int)ImGui.GetWindowWidth() - 15); var renderHeight = Math.Max(120, (int)ImGui.GetWindowHeight() - 70); //Generate render target if (rh != renderHeight || rw != renderWidth) { if (renderTarget != null) { ImGuiHelper.DeregisterTexture(renderTarget); renderTarget.Dispose(); } renderTarget = new RenderTarget2D(renderWidth, renderHeight); rid = ImGuiHelper.RegisterTexture(renderTarget); rw = renderWidth; rh = renderHeight; } DrawGL(renderWidth, renderHeight); //Display + Camera controls ImGui.ImageButton((IntPtr)rid, new Vector2(renderWidth, renderHeight), Vector2.Zero, Vector2.One, 0, Vector4.One, Vector4.One); if (ImGui.IsItemHovered(HoveredFlags.Default)) { if (ImGui.IsMouseDragging(0, 1f)) { var delta = (Vector2)ImGui.GetMouseDragDelta(0, 1f); rotation -= (delta / 64); ImGui.ResetMouseDragDelta(0); } float wheel = ImGui.GetIO().MouseWheel; if (ImGui.GetIO().ShiftPressed) { zoom -= wheel * 10; } else { zoom -= wheel * 40; } } //Action Bar if (ImGui.Button("Actions")) { ImGui.OpenPopup("actions"); } if (ImGui.BeginPopup("actions")) { if (ImGui.MenuItem("Open Node Library")) { } ImGui.EndPopup(); } ImGui.SameLine(); if (ImGui.Button("Reset")) { instance.Reset(); } ImGui.SameLine(); ImGui.Text(string.Format("T: {0:0.000}", instance.GlobalTime)); //Node Hierachy Tab ImGui.EndChild(); ImGui.NextColumn(); ImGui.BeginChild("##nodesdisplay", false); if (selectedReference != null) { NodeOptions(); ImGui.Separator(); } ImGui.BeginChild("##nodescroll", false); NodeHierachy(); ImGui.EndChild(); ImGui.EndChild(); return(open); }
public override void Draw() { bool doTabs = false; foreach (var t in openTabs) { if (t) { doTabs = true; break; } } var contentw = ImGui.GetWindowContentRegionWidth(); if (doTabs) { ImGui.Columns(2, "##alecolumns", true); ImGui.BeginChild("##leftpanel"); if (openTabs[0]) { NodePanel(); } ImGui.EndChild(); ImGui.NextColumn(); } TabButtons(); ImGui.SameLine(); ImGui.BeginChild("##renderpanel"); //Fx management lastEffect = currentEffect; ImGui.Text("Effect:"); ImGui.SameLine(); ImGui.Combo("##effect", ref currentEffect, effectNames, effectNames.Length); if (currentEffect != lastEffect) { SetupRender(currentEffect); } ImGui.SameLine(); ImGui.Button("+"); ImGui.SameLine(); ImGui.Button("-"); ImGui.Separator(); //Viewport ImGui.BeginChild("##renderchild"); //Generate render target aleViewport.Begin(); DrawGL(aleViewport.RenderWidth, aleViewport.RenderHeight); //Display + Camera controls aleViewport.End(); //Action Bar ViewerControls.DropdownButton("Camera Mode", ref cameraMode, camModes); aleViewport.Mode = (CameraModes)camModes[cameraMode].Tag; ImGui.SameLine(); if (ImGui.Button("Reset Camera (Ctrl+R)")) { aleViewport.ResetControls(); } ImGui.SameLine(); if (ImGui.Button("Reset Fx")) { instance.Reset(); } ImGui.SameLine(); ImGui.Text(string.Format("T: {0:0.000}", instance.GlobalTime)); ImGui.EndChild(); ImGui.EndChild(); }