Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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();
        }