public void OnTick()
        {
            var w = (int)size.X;
            var h = (int)size.Y;

            if (w == 0 || h == 0)
            {
                return;
            }

            if (target.ptr == IntPtr.Zero)
            {
                targetW = w;
                targetH = h;
                target  = AppNative.feTarget_Create(w, h);
            }
            else if (w != targetW || h != targetH)
            {
                targetW = w;
                targetH = h;
                AppNative.feTarget_Reset(target, w, h);
            }

            AppNative.feFrame_SetTarget(target);
            AppNative.feFrame_Clear(s_clearColor, true, true);
            AppNative.feFrame_Flush();
        }
        public void OnGUI()
        {
            Vector2 canvas_sz = ImGui.GetContentRegionAvail();

            size = canvas_sz;
            if (target.ptr != IntPtr.Zero)
            {
                var texid = AppNative.feTarget_GetImGuiTexID(target);
                ImGui.Image(texid, size);
            }
        }
Exemple #3
0
        void DrawEditor()
        {
            DrawDock();

            DrawWindows();

            //simple menu system
            if (ImGui.BeginMainMenuBar())
            {
                menu.OnGUI();

                //this is for demo
                if (ImGui.BeginMenu("Demo"))
                {
                    ImGui.MenuItem("show demo", "", ref bShowDemo);
                    ImGui.MenuItem("show state", "", ref bShowState);
                    ImGui.MenuItem("show font", "", ref bShowFont);
                    ImGui.EndMenu();
                }
                ImGui.EndMainMenuBar();
            }

            if (bShowDemo)
            {
                ImGui.ShowDemoWindow();
            }

            if (bShowState)
            {
                AppNative.feApp_ShowState();
            }

            if (bShowFont)
            {
                ImGui.ShowFontSelector("font selector");
            }
        }
Exemple #4
0
 public void Run()
 {
     AppNative.feApp_MainLoop("FireEngine", OnInit, OnGUI, OnTick, OnExit);
 }
Exemple #5
0
 public void Run()
 {
     AppNative.feApp_MainLoop("FireEngine NetCore中", OnInit, OnGui, () => { }, OnExit);
 }
        void OnGUI_RightMenu(SceneNode scene)
        {
            // 暂时不支持创建多个场景
            if (ImGui.MenuItem("Create Scene", false))//!handle.IsValid()))
            {
                int    count = SceneNative.SceneCount();
                string _name = "Scene";
                if (count > 0)
                {
                    _name = string.Format("Scene ({0})", count);
                }
                SceneNative.SceneCreate(_name);
            }

            ImGui.Separator();
            if (ImGui.MenuItem("Rename", "F2", false, scene != null))
            {
                //curSelectedTransform = handle;
                renameing = true;
            }

            ImGui.Separator();

            if (ImGui.MenuItem("Create Empty", scene != null))
            {
                int    count = TransformNative.TransformChildCount(scene.handle);
                string _name = "GameObject";
                if (count > 0)
                {
                    _name = string.Format("GameObject ({0})", count);
                }
                var       gameObject     = GameObject.Inner_Create(scene.handle, _name);
                SceneNode gameObjectNode = new SceneNode();
                gameObjectNode.name      = _name;
                gameObjectNode.handle    = gameObject.transform.transformHandle;
                gameObjectNode.component = gameObject.transform;
                gameObjectNode.inspector = new InspectorTransform();
                Scene.current.root.AddChild(gameObjectNode);
            }

            if (ImGui.BeginMenu("3D Object", scene != null))
            {
                if (ImGui.MenuItem("Cube"))
                {
                    string    name             = "Cube";
                    IntPtr    native           = TransformNative.TransformGetNativeByHandle(scene.handle);
                    IntPtr    gameObjectNative = AppNative.InnerGeoCreateCube(native, name);
                    var       gameObject       = GameObject.CreateFromNative(gameObjectNative);
                    SceneNode gameObjectNode   = new SceneNode();
                    gameObjectNode.name      = name;
                    gameObjectNode.handle    = gameObject.transform.transformHandle;
                    gameObjectNode.component = gameObject.transform;
                    gameObjectNode.inspector = new InspectorRenderer();
                    Scene.current.root.AddChild(gameObjectNode);
                }

                ImGui.EndMenu();
            }

            if (ImGui.MenuItem("Camera", scene != null))
            {
                Camera    mainCamera  = Camera.Inner_Create(scene.handle, "Main Camera");
                SceneNode sceneCamera = new SceneNode();
                sceneCamera.name      = "Main Camera";
                sceneCamera.handle    = mainCamera.transformHandle;
                sceneCamera.component = mainCamera;
                sceneCamera.inspector = new InspectorCamera();
                Scene.current.root.AddChild(sceneCamera);
            }
        }