public static bool Initialize(int width, int height) { var mgr = new swig.GUIManager(); if (mgr.Initialize("Effekseer", 960, 540, false)) { } else { mgr.Dispose(); mgr = null; return(false); } Native = new swig.Native(); Viewer = new Viewer(Native); if (!Viewer.ShowViewer(mgr.GetNativeHandle(), 960, 540, true)) { mgr.Dispose(); mgr = null; return(false); } NativeManager = mgr; // Load font NativeManager.AddFontFromFileTTF("resources/GenShinGothic-Monospace-Normal.ttf", 16); // Add controls var mainMenu = new GUI.Menu.MainMenu(); GUI.Manager.AddControl(mainMenu); NodeTreeView = new Dock.NodeTreeView(); GUI.Manager.AddControl(NodeTreeView); NodeTreeView.Renew(); ViewerController = new Dock.ViewerController(); GUI.Manager.AddControl(ViewerController); Option = new Dock.Option(); GUI.Manager.AddControl(Option); Network = new Network(Native); /* * Command.CommandManager.Changed += OnChanged; * * Core.EffectBehavior.Location.X.OnChanged += OnChanged; * Core.EffectBehavior.Location.Y.OnChanged += OnChanged; * Core.EffectBehavior.Location.Z.OnChanged += OnChanged; * Core.EffectBehavior.Rotation.X.OnChanged += OnChanged; * Core.EffectBehavior.Rotation.Y.OnChanged += OnChanged; * Core.EffectBehavior.Rotation.Z.OnChanged += OnChanged; * Core.EffectBehavior.Scale.X.OnChanged += OnChanged; * Core.EffectBehavior.Scale.Y.OnChanged += OnChanged; * Core.EffectBehavior.Scale.Z.OnChanged += OnChanged; * * Core.EffectBehavior.LocationVelocity.X.OnChanged += OnChanged; * Core.EffectBehavior.LocationVelocity.Y.OnChanged += OnChanged; * Core.EffectBehavior.LocationVelocity.Z.OnChanged += OnChanged; * Core.EffectBehavior.RotationVelocity.X.OnChanged += OnChanged; * Core.EffectBehavior.RotationVelocity.Y.OnChanged += OnChanged; * Core.EffectBehavior.RotationVelocity.Z.OnChanged += OnChanged; * Core.EffectBehavior.ScaleVelocity.X.OnChanged += OnChanged; * Core.EffectBehavior.ScaleVelocity.Y.OnChanged += OnChanged; * Core.EffectBehavior.ScaleVelocity.Z.OnChanged += OnChanged; * Core.EffectBehavior.RemovedTime.Infinite.OnChanged += OnChanged; * Core.EffectBehavior.RemovedTime.Value.OnChanged += OnChanged; * * Core.EffectBehavior.TargetLocation.X.OnChanged += OnChanged; * Core.EffectBehavior.TargetLocation.Y.OnChanged += OnChanged; * Core.EffectBehavior.TargetLocation.Z.OnChanged += OnChanged; * * Core.EffectBehavior.CountX.OnChanged += OnChanged; * Core.EffectBehavior.CountY.OnChanged += OnChanged; * Core.EffectBehavior.CountZ.OnChanged += OnChanged; * * Core.EffectBehavior.Distance.OnChanged += OnChanged; * * Core.EffectBehavior.TimeSpan.OnChanged += OnChanged; * Core.EffectBehavior.ColorAll.R.OnChanged += OnChanged; * Core.EffectBehavior.ColorAll.G.OnChanged += OnChanged; * Core.EffectBehavior.ColorAll.B.OnChanged += OnChanged; * Core.EffectBehavior.ColorAll.A.OnChanged += OnChanged; * * Core.Option.Magnification.OnChanged += OnChanged; * Core.Option.IsGridShown.OnChanged += OnChanged; * Core.Option.GridLength.OnChanged += OnChanged; * Core.Option.BackgroundColor.R.OnChanged += OnChanged; * Core.Option.BackgroundColor.G.OnChanged += OnChanged; * Core.Option.BackgroundColor.B.OnChanged += OnChanged; * Core.Option.BackgroundColor.A.OnChanged += OnChanged; * Core.Option.GridColor.R.OnChanged += OnChanged; * Core.Option.GridColor.G.OnChanged += OnChanged; * Core.Option.GridColor.B.OnChanged += OnChanged; * Core.Option.GridColor.A.OnChanged += OnChanged; * Core.Option.FPS.OnChanged += OnChanged; * * Core.Option.DistortionType.OnChanged += OnChanged; * Core.Option.Coordinate.OnChanged += OnChanged; * * Core.Option.BackgroundImage.OnChanged += OnChanged; * * Core.Culling.IsShown.OnChanged += OnChanged; * Core.Culling.Type.OnChanged += OnChanged; * Core.Culling.Sphere.Location.X.OnChanged += OnChanged; * Core.Culling.Sphere.Location.Y.OnChanged += OnChanged; * Core.Culling.Sphere.Location.Z.OnChanged += OnChanged; * Core.Culling.Sphere.Radius.OnChanged += OnChanged; * * Core.OnAfterLoad += new EventHandler(Core_OnAfterLoad); * Core.OnAfterNew += new EventHandler(Core_OnAfterNew); * Core.OnReload += new EventHandler(Core_OnReload); */ return(true); }
public static void Update() { if (isFontSizeDirtied) { NativeManager.InvalidateFont(); var appDirectory = Manager.GetEntryDirectory(); var type = Core.Option.Font.Value; NativeManager.ClearAllFonts(); var characterTable = System.IO.Path.Combine(appDirectory, "resources/languages/characterTable.txt"); if (type == Data.FontType.Normal) { NativeManager.AddFontFromFileTTF(System.IO.Path.Combine(appDirectory, MultiLanguageTextProvider.GetText("Font_Normal")), characterTable, MultiLanguageTextProvider.GetText("CharacterTable"), Core.Option.FontSize.Value); } else if (type == Data.FontType.Bold) { NativeManager.AddFontFromFileTTF(System.IO.Path.Combine(appDirectory, MultiLanguageTextProvider.GetText("Font_Bold")), characterTable, MultiLanguageTextProvider.GetText("CharacterTable"), Core.Option.FontSize.Value); } NativeManager.AddFontFromAtlasImage(System.IO.Path.Combine(appDirectory, "resources/icons/MenuIcons.png"), 0xec00, 24, 24, 16, 16); isFontSizeDirtied = false; } // Reset IO.Update(); Shortcuts.Update(); Network.Update(); var handle = false; if (!handle) { if (!NativeManager.IsAnyItemActive()) { Shortcuts.ProcessCmdKey(ref handle); } } var mousePos = NativeManager.GetMousePosition(); if (isFirstUpdate) { mousePos_pre = mousePos; } if ((effectViewer == null && !NativeManager.IsAnyWindowHovered()) || (effectViewer != null && effectViewer.IsHovered)) { var result = ControllViewport(); if (result.Slide) { var dx = mousePos.X - mousePos_pre.X; var dy = mousePos.Y - mousePos_pre.Y; if (Core.Option.ViewerMode.Value == Data.OptionValues.ViewMode._3D) { Viewer.Slide(dx / 30.0f, dy / 30.0f); } else if (Core.Option.ViewerMode.Value == Data.OptionValues.ViewMode._2D) { Viewer.Slide(dx / 16.0f, dy / 16.0f); } } else if (NativeManager.GetMouseWheel() != 0) { Viewer.Zoom(NativeManager.GetMouseWheel()); } else if (result.Zoom) { var dx = mousePos.X - mousePos_pre.X; var dy = mousePos.Y - mousePos_pre.Y; Viewer.Zoom(-dy * 0.25f); } else if (result.Rotate) { var dx = mousePos.X - mousePos_pre.X; var dy = mousePos.Y - mousePos_pre.Y; if (Core.Option.ViewerMode.Value == Data.OptionValues.ViewMode._3D) { Viewer.Rotate(dx, dy); } else if (Core.Option.ViewerMode.Value == Data.OptionValues.ViewMode._2D) { Viewer.Slide(dx / 16.0f, dy / 16.0f); } } } mousePos_pre = mousePos; Viewer.UpdateViewer(); Native.UpdateWindow(); Native.ClearWindow(50, 50, 50, 0); //if(effectViewer == null) //{ // Native.RenderWindow(); //} NativeManager.ResetGUI(); if (resetCount < 0) { resetCount++; if (resetCount == 0) { Application.Current.OnResetWindowActually(); } } if (resizedCount > 0) { resizedCount--; } Controls.Lock(); foreach (var c in Controls.Internal) { c.Update(); } foreach (var _ in Controls.Internal) { if (!_.ShouldBeRemoved) { continue; } var dp = _ as Dock.DockPanel; if (dp != null) { dp.DispatchDisposed(); } } foreach (var _ in Controls.Internal) { if (!_.ShouldBeRemoved) { continue; } Controls.Remove(_); } Controls.Unlock(); for (int i = 0; i < dockTypes.Length; i++) { if (panels[i] != null && panels[i].ShouldBeRemoved) { panels[i] = null; } } NativeManager.RenderGUI(resizedCount == 0); Native.Present(); NativeManager.Present(); isFirstUpdate = false; // TODO more smart // When minimized, suppress CPU activity if (actualWidth == 0) { System.Threading.Thread.Sleep(16); } }
public static bool Initialize(int width, int height, swig.DeviceType deviceType) { var mgr = new swig.GUIManager(); if (mgr.Initialize("Effekseer", 1280, 720, deviceType, false)) { } else { mgr.Dispose(); mgr = null; return(false); } Native = new swig.Native(); Viewer = new Viewer(Native); if (!Viewer.ShowViewer(mgr.GetNativeHandle(), 1280, 720, deviceType)) { mgr.Dispose(); mgr = null; return(false); } mgr.InitializeGUI(Native); NativeManager = mgr; Images.Load(GUI.Manager.Native); guiManagerCallback = new GUIManagerCallback(); NativeManager.SetCallback(guiManagerCallback); panels = new Dock.DockPanel[dockTypes.Length]; var appDirectory = Manager.GetEntryDirectory(); // Load font NativeManager.AddFontFromFileTTF(System.IO.Path.Combine(appDirectory, "resources/GenShinGothic-Monospace-Normal.ttf"), 16); // Load window icon NativeManager.SetWindowIcon(System.IO.Path.Combine(appDirectory, "resources/icon.png")); // Load config RecentFiles.LoadRecentConfig(); Shortcuts.LoadShortcuts(); Commands.Register(); // Add controls var mainMenu = new GUI.Menu.MainMenu(); GUI.Manager.AddControl(mainMenu); dockManager = new GUI.Dock.DockManager(); GUI.Manager.AddControl(dockManager); // Default effectViewer = new Dock.EffectViwer(); if (dockManager != null) { effectViewer.InitialDockSlot = swig.DockSlot.None; dockManager.Controls.Add(effectViewer); } else { AddControl(effectViewer); } if (LoadWindowConfig(System.IO.Path.Combine(appDirectory, "config.Dock.xml"))) { Manager.NativeManager.LoadDock(System.IO.Path.Combine(appDirectory, "config.Dock.config")); } else { ResetWindowActually(); } TextOffsetY = (NativeManager.GetTextLineHeightWithSpacing() - NativeManager.GetTextLineHeight()) / 2; Network = new Network(Native); Network.Load(); Command.CommandManager.Changed += OnChanged; Core.EffectBehavior.Location.X.OnChanged += OnChanged; Core.EffectBehavior.Location.Y.OnChanged += OnChanged; Core.EffectBehavior.Location.Z.OnChanged += OnChanged; Core.EffectBehavior.Rotation.X.OnChanged += OnChanged; Core.EffectBehavior.Rotation.Y.OnChanged += OnChanged; Core.EffectBehavior.Rotation.Z.OnChanged += OnChanged; Core.EffectBehavior.Scale.X.OnChanged += OnChanged; Core.EffectBehavior.Scale.Y.OnChanged += OnChanged; Core.EffectBehavior.Scale.Z.OnChanged += OnChanged; Core.EffectBehavior.LocationVelocity.X.OnChanged += OnChanged; Core.EffectBehavior.LocationVelocity.Y.OnChanged += OnChanged; Core.EffectBehavior.LocationVelocity.Z.OnChanged += OnChanged; Core.EffectBehavior.RotationVelocity.X.OnChanged += OnChanged; Core.EffectBehavior.RotationVelocity.Y.OnChanged += OnChanged; Core.EffectBehavior.RotationVelocity.Z.OnChanged += OnChanged; Core.EffectBehavior.ScaleVelocity.X.OnChanged += OnChanged; Core.EffectBehavior.ScaleVelocity.Y.OnChanged += OnChanged; Core.EffectBehavior.ScaleVelocity.Z.OnChanged += OnChanged; Core.EffectBehavior.RemovedTime.Infinite.OnChanged += OnChanged; Core.EffectBehavior.RemovedTime.Value.OnChanged += OnChanged; Core.EffectBehavior.TargetLocation.X.OnChanged += OnChanged; Core.EffectBehavior.TargetLocation.Y.OnChanged += OnChanged; Core.EffectBehavior.TargetLocation.Z.OnChanged += OnChanged; Core.EffectBehavior.CountX.OnChanged += OnChanged; Core.EffectBehavior.CountY.OnChanged += OnChanged; Core.EffectBehavior.CountZ.OnChanged += OnChanged; Core.EffectBehavior.Distance.OnChanged += OnChanged; Core.EffectBehavior.TimeSpan.OnChanged += OnChanged; Core.EffectBehavior.ColorAll.R.OnChanged += OnChanged; Core.EffectBehavior.ColorAll.G.OnChanged += OnChanged; Core.EffectBehavior.ColorAll.B.OnChanged += OnChanged; Core.EffectBehavior.ColorAll.A.OnChanged += OnChanged; Core.Option.Magnification.OnChanged += OnChanged; Core.Option.IsGridShown.OnChanged += OnChanged; Core.Option.GridLength.OnChanged += OnChanged; Core.Option.BackgroundColor.R.OnChanged += OnChanged; Core.Option.BackgroundColor.G.OnChanged += OnChanged; Core.Option.BackgroundColor.B.OnChanged += OnChanged; Core.Option.BackgroundColor.A.OnChanged += OnChanged; Core.Option.GridColor.R.OnChanged += OnChanged; Core.Option.GridColor.G.OnChanged += OnChanged; Core.Option.GridColor.B.OnChanged += OnChanged; Core.Option.GridColor.A.OnChanged += OnChanged; Core.Option.FPS.OnChanged += OnChanged; Core.Option.DistortionType.OnChanged += OnChanged; Core.Option.Coordinate.OnChanged += OnChanged; Core.Option.BackgroundImage.OnChanged += OnChanged; Core.Culling.IsShown.OnChanged += OnChanged; Core.Culling.Type.OnChanged += OnChanged; Core.Culling.Sphere.Location.X.OnChanged += OnChanged; Core.Culling.Sphere.Location.Y.OnChanged += OnChanged; Core.Culling.Sphere.Location.Z.OnChanged += OnChanged; Core.Culling.Sphere.Radius.OnChanged += OnChanged; Core.OnAfterLoad += new EventHandler(Core_OnAfterLoad); Core.OnAfterNew += new EventHandler(Core_OnAfterNew); Core.OnReload += new EventHandler(Core_OnReload); // Set imgui path var entryDirectory = GetEntryDirectory(); swig.GUIManager.SetIniFilename(entryDirectory + "/imgui.ini"); return(true); }
public static bool Initialize(int width, int height) { bool isOpenGLMode = true; var mgr = new swig.GUIManager(); if (mgr.Initialize("Effekseer", 1280, 720, isOpenGLMode, false)) { } else { mgr.Dispose(); mgr = null; return(false); } Native = new swig.Native(); Viewer = new Viewer(Native); if (!Viewer.ShowViewer(mgr.GetNativeHandle(), 1280, 720, isOpenGLMode)) { mgr.Dispose(); mgr = null; return(false); } mgr.InitializeGUI(Native); NativeManager = mgr; Images.Load(GUI.Manager.Native); guiManagerCallback = new GUIManagerCallback(); NativeManager.SetCallback(guiManagerCallback); panels = new Dock.DockPanel[dockTypes.Length]; // Load font NativeManager.AddFontFromFileTTF("resources/GenShinGothic-Monospace-Normal.ttf", 16); // Load config RecentFiles.LoadRecentConfig(); Shortcuts.LoadShortcuts(); Commands.Register(); // Add controls var mainMenu = new GUI.Menu.MainMenu(); GUI.Manager.AddControl(mainMenu); dockManager = new GUI.Dock.DockManager(); GUI.Manager.AddControl(dockManager); // Default effectViewer = new Dock.EffectViwer(); if (dockManager != null) { effectViewer.InitialDockSlot = swig.DockSlot.None; dockManager.Controls.Add(effectViewer); } else { AddControl(effectViewer); } if (LoadWindowConfig("config.Dock.xml")) { Manager.NativeManager.LoadDock("config.Dock.config"); } else { ResetWindowActually(); } Network = new Network(Native); Command.CommandManager.Changed += OnChanged; Core.EffectBehavior.Location.X.OnChanged += OnChanged; Core.EffectBehavior.Location.Y.OnChanged += OnChanged; Core.EffectBehavior.Location.Z.OnChanged += OnChanged; Core.EffectBehavior.Rotation.X.OnChanged += OnChanged; Core.EffectBehavior.Rotation.Y.OnChanged += OnChanged; Core.EffectBehavior.Rotation.Z.OnChanged += OnChanged; Core.EffectBehavior.Scale.X.OnChanged += OnChanged; Core.EffectBehavior.Scale.Y.OnChanged += OnChanged; Core.EffectBehavior.Scale.Z.OnChanged += OnChanged; Core.EffectBehavior.LocationVelocity.X.OnChanged += OnChanged; Core.EffectBehavior.LocationVelocity.Y.OnChanged += OnChanged; Core.EffectBehavior.LocationVelocity.Z.OnChanged += OnChanged; Core.EffectBehavior.RotationVelocity.X.OnChanged += OnChanged; Core.EffectBehavior.RotationVelocity.Y.OnChanged += OnChanged; Core.EffectBehavior.RotationVelocity.Z.OnChanged += OnChanged; Core.EffectBehavior.ScaleVelocity.X.OnChanged += OnChanged; Core.EffectBehavior.ScaleVelocity.Y.OnChanged += OnChanged; Core.EffectBehavior.ScaleVelocity.Z.OnChanged += OnChanged; Core.EffectBehavior.RemovedTime.Infinite.OnChanged += OnChanged; Core.EffectBehavior.RemovedTime.Value.OnChanged += OnChanged; Core.EffectBehavior.TargetLocation.X.OnChanged += OnChanged; Core.EffectBehavior.TargetLocation.Y.OnChanged += OnChanged; Core.EffectBehavior.TargetLocation.Z.OnChanged += OnChanged; Core.EffectBehavior.CountX.OnChanged += OnChanged; Core.EffectBehavior.CountY.OnChanged += OnChanged; Core.EffectBehavior.CountZ.OnChanged += OnChanged; Core.EffectBehavior.Distance.OnChanged += OnChanged; Core.EffectBehavior.TimeSpan.OnChanged += OnChanged; Core.EffectBehavior.ColorAll.R.OnChanged += OnChanged; Core.EffectBehavior.ColorAll.G.OnChanged += OnChanged; Core.EffectBehavior.ColorAll.B.OnChanged += OnChanged; Core.EffectBehavior.ColorAll.A.OnChanged += OnChanged; Core.Option.Magnification.OnChanged += OnChanged; Core.Option.IsGridShown.OnChanged += OnChanged; Core.Option.GridLength.OnChanged += OnChanged; Core.Option.BackgroundColor.R.OnChanged += OnChanged; Core.Option.BackgroundColor.G.OnChanged += OnChanged; Core.Option.BackgroundColor.B.OnChanged += OnChanged; Core.Option.BackgroundColor.A.OnChanged += OnChanged; Core.Option.GridColor.R.OnChanged += OnChanged; Core.Option.GridColor.G.OnChanged += OnChanged; Core.Option.GridColor.B.OnChanged += OnChanged; Core.Option.GridColor.A.OnChanged += OnChanged; Core.Option.FPS.OnChanged += OnChanged; Core.Option.DistortionType.OnChanged += OnChanged; Core.Option.Coordinate.OnChanged += OnChanged; Core.Option.BackgroundImage.OnChanged += OnChanged; Core.Culling.IsShown.OnChanged += OnChanged; Core.Culling.Type.OnChanged += OnChanged; Core.Culling.Sphere.Location.X.OnChanged += OnChanged; Core.Culling.Sphere.Location.Y.OnChanged += OnChanged; Core.Culling.Sphere.Location.Z.OnChanged += OnChanged; Core.Culling.Sphere.Radius.OnChanged += OnChanged; Core.OnAfterLoad += new EventHandler(Core_OnAfterLoad); Core.OnAfterNew += new EventHandler(Core_OnAfterNew); Core.OnReload += new EventHandler(Core_OnReload); return(true); }
public static void Update() { if (isFontSizeDirtied) { NativeManager.InvalidateFont(); var appDirectory = Manager.GetEntryDirectory(); var type = Core.Option.Font.Value; if (type == Data.FontType.Normal) { NativeManager.AddFontFromFileTTF(System.IO.Path.Combine(appDirectory, "resources/GenShinGothic-Monospace-Normal.ttf"), Core.Option.FontSize.Value); } else if (type == Data.FontType.Bold) { NativeManager.AddFontFromFileTTF(System.IO.Path.Combine(appDirectory, "resources/fonts/GenShinGothic-Monospace-Bold.ttf"), Core.Option.FontSize.Value); } isFontSizeDirtied = false; } // Reset NativeManager.SetNextDockRate(0.5f); NativeManager.SetNextDock(swig.DockSlot.Tab); NativeManager.ResetNextParentDock(); IO.Update(); Shortcuts.Update(); Network.Update(); var handle = false; if (!handle) { if (!NativeManager.IsAnyItemActive()) { Shortcuts.ProcessCmdKey(ref handle); } } var mousePos = NativeManager.GetMousePosition(); if (isFirstUpdate) { mousePos_pre = mousePos; } if ((effectViewer == null && !NativeManager.IsAnyWindowHovered()) || (effectViewer != null && effectViewer.IsHovered)) { if (NativeManager.GetMouseButton(2) > 0) { var dx = mousePos.X - mousePos_pre.X; var dy = mousePos.Y - mousePos_pre.Y; Viewer.Slide(dx / 30.0f, dy / 30.0f); } if (NativeManager.GetMouseButton(1) > 0) { var dx = mousePos.X - mousePos_pre.X; var dy = mousePos.Y - mousePos_pre.Y; Viewer.Rotate(dx, dy); } if (NativeManager.GetMouseWheel() != 0) { Viewer.Zoom(NativeManager.GetMouseWheel()); } } mousePos_pre = mousePos; Viewer.UpdateViewer(); Native.UpdateWindow(); Native.ClearWindow(50, 50, 50, 0); if (effectViewer == null) { Native.RenderWindow(); } NativeManager.ResetGUI(); if (resetCount < 0) { resetCount++; if (resetCount == 0) { ResetWindowActually(); } } if (resizedCount > 0) { resizedCount--; } Controls.Lock(); foreach (var c in Controls.Internal) { c.Update(); } foreach (var _ in Controls.Internal) { if (!_.ShouldBeRemoved) { continue; } var dp = _ as Dock.DockPanel; if (dp != null) { dp.DispatchDisposed(); } } foreach (var _ in Controls.Internal) { if (!_.ShouldBeRemoved) { continue; } Controls.Remove(_); } Controls.Unlock(); for (int i = 0; i < dockTypes.Length; i++) { if (panels[i] != null && panels[i].ShouldBeRemoved) { panels[i] = null; } } NativeManager.RenderGUI(resizedCount == 0); Native.Present(); NativeManager.Present(); isFirstUpdate = false; // TODO more smart // When minimized, suppress CPU activity if (actualWidth == 0) { System.Threading.Thread.Sleep(16); } }