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); } }
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"); } }
public void Run() { AppNative.feApp_MainLoop("FireEngine", OnInit, OnGUI, OnTick, OnExit); }
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); } }