private void MainMenuBar_MouseEnter(object sender, MouseEventArgs e) { DoubleAnimation anim = new DoubleAnimation(35d, new Duration(TimeSpan.FromSeconds(0.2d))); anim.EasingFunction = new ExponentialEase(); MainMenuBar.BeginAnimation(HeightProperty, anim); }
private void MainMenuBar_MouseLeave(object sender, MouseEventArgs e) { DoubleAnimation anim = new DoubleAnimation(0d, new Duration(TimeSpan.FromSeconds(0.2d))); anim.EasingFunction = new ExponentialEase(); if (MainMenuBar.Height == 35d) { Thread.Sleep(TimeSpan.FromSeconds(0.5d)); } MainMenuBar.BeginAnimation(HeightProperty, anim); }
// -------------- public MainWindow() : base(WINDOW_WIDTH, WINDOW_HEIGHT, GraphicsMode.Default, WINDOW_TITLE, GameWindowFlags.Default, DisplayDevice.Default, GL_MAJOR_VERSION, GL_MINOR_VERSION, GraphicsContextFlags.Default) { Instance = this; Icon = new Icon(typeof(MainWindow), "appicon.ico"); GL.Enable(EnableCap.DepthTest); GL.Enable(EnableCap.CullFace); _cam = new Camera(); _cam.Transform.Translate(new Vector3(0, 0, -3)); _fbo = new Framebuffer(WINDOW_WIDTH, WINDOW_HEIGHT, FramebufferTarget.Framebuffer); _proj = Matrix4.CreatePerspectiveFieldOfView(MathHelper.DegreesToRadians(60f), (float)_fbo.Width / _fbo.Height, 0.1f, 100f); ImGuiRenderer.Init(); _guiComponents = new List <ImGuiComponent>(); _updateAvailableModal = new Modal("New update available!", "Download at https://github.com/Figglewatts/LSDView/releases/latest"); createControllers(); ApplicationArea area = new ApplicationArea(); TreeView <TreeNode> outlineView = new TreeView <TreeNode>(); _treeController.SetTree(outlineView); area.AddChild(new Columns(2, new List <ImGuiComponent> { outlineView, new FramebufferArea(_fbo) }, new[] { 250f, -1 })); var menuBar = new MainMenuBar(_fileOpenController, _vramController, _configController, _cameraController); _guiComponents.Add(area); _guiComponents.Add(menuBar); _guiComponents.Add(_exportFileDialog); _guiComponents.Add(_updateAvailableModal); }
protected override void OnLoad(EventArgs eventArgs) { base.OnLoad(eventArgs); GL.ClearColor(Color4.DimGray); GL.DebugMessageCallback(OnDebugMessage, IntPtr.Zero); GL.Enable(EnableCap.Blend); GL.Enable(EnableCap.DepthTest); GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha); Time.Init(); ShaderProgram.Init(); Gizmos.Init(); Audio.Init(); MusicPlayer.Init("Content\\Music\\Songs"); ImGuiOpenTK.Init(this); //ImGuiOpenTK.drawGui += new ResizableWindow().DrawGui; Editor.Init(); MainMenuBar.Init(); m_Canvas = new Canvas(this); m_Texture = new Texture( "Content\\Pictures\\basketball.jpg", TextureMinFilter.Nearest, TextureMagFilter.Nearest); var duane = new Animation( TextureMinFilter.Nearest, TextureMagFilter.Nearest, "Content\\Pictures\\Duane.gif"); duane.BufferData(); var sheGotTheMoves = new Animation( TextureMinFilter.Nearest, TextureMagFilter.Nearest, "Content\\Pictures\\SheGotTheMoves.gif"); sheGotTheMoves.BufferData(); //var dancing = new Image(m_Canvas, duane, null, sheGotTheMoves); //dancing.transform.position = // new Vector3(dancing.transform.localScale.X /2f, dancing.transform.localScale.Y / 2f, 0f); var playTexture = new Texture( "Content\\Pictures\\MediaPlayer\\Play.png", TextureMinFilter.Linear, TextureMagFilter.Linear); var nextTexture = new Texture( "Content\\Pictures\\MediaPlayer\\Next.png", TextureMinFilter.Linear, TextureMagFilter.Linear); var previousTexture = new Texture( "Content\\Pictures\\MediaPlayer\\Previous.png", TextureMinFilter.Linear, TextureMagFilter.Linear); var play = new Button( m_Canvas, () => MusicPlayer.TogglePause(), playTexture, null, null); play.transform.localScale = new Vector3(50f, 50f, 1f); play.transform.position = new Vector3(Width / 2f, -10f + Height - play.transform.localScale.Y / 2f, 0f); var next = new Button( m_Canvas, () => MusicPlayer.NextTrack(), nextTexture, null, null); next.transform.localScale = new Vector3(50f, 50f, 1f); next.transform.position = new Vector3( play.transform.position.X + 100f, -10f + Height - next.transform.localScale.Y / 2f, 0f); var previous = new Button( m_Canvas, () => MusicPlayer.PreviousTrack(), previousTexture, null, null); previous.transform.localScale = new Vector3(50f, 50f, 1f); previous.transform.position = new Vector3( play.transform.position.X - 100f, -10f + Height - previous.transform.localScale.Y / 2f, 0f); ShaderProgram.texture.Use(); var location = ShaderProgram.texture.GetUniformLocation("lightDirection"); GL.Uniform3(location, 1f, 0.5f, 0f); var mesh = Sphere.GetMesh(); m_Sun = new GameObject("Sun"); var sunMeshFilter = m_Sun.AddComponent <MeshFilter <Vertex> >(); sunMeshFilter.mesh = mesh; var sunMeshRenderer = m_Sun.AddComponent <MeshRenderer <Vertex> >(); sunMeshRenderer.shader = ShaderProgram.texture; sunMeshRenderer.diffuseTexture = m_Texture; sunMeshRenderer.Bind(); sunMeshRenderer.BufferData(); sunMeshRenderer.UnBind(); m_MeshRenderers.Add(sunMeshRenderer); m_Earth = new GameObject("Earth"); var earthMeshFilter = m_Earth.AddComponent <MeshFilter <Vertex> >(); earthMeshFilter.mesh = mesh; var earthMeshRenderer = m_Earth.AddComponent <MeshRenderer <Vertex> >(); earthMeshRenderer.shader = ShaderProgram.texture; earthMeshRenderer.diffuseTexture = duane; earthMeshRenderer.Bind(); earthMeshRenderer.BufferData(); earthMeshRenderer.UnBind(); m_Earth.transform.SetParent(m_Sun.transform); m_Earth.transform.Translate(new Vector3(1.5f, 0f, 0f)); m_MeshRenderers.Add(earthMeshRenderer); m_Moon = new GameObject("Moon"); var moonMeshFilter = m_Moon.AddComponent <MeshFilter <Vertex> >(); moonMeshFilter.mesh = mesh; var moonMeshRenderer = m_Moon.AddComponent <MeshRenderer <Vertex> >(); moonMeshRenderer.shader = ShaderProgram.texture; moonMeshRenderer.diffuseTexture = sheGotTheMoves; moonMeshRenderer.Bind(); moonMeshRenderer.BufferData(); moonMeshRenderer.UnBind(); m_Moon.transform.Translate(new Vector3(1.5f, 0f, 0f)); m_Moon.transform.Scale(new Vector3(0.5f, 0.5f, 0.5f)); m_Moon.transform.SetParent(m_Earth.transform); m_MeshRenderers.Add(moonMeshRenderer); m_Camera = new StaticCamera(); m_Camera.SetLookAt(new Vector3(0f, 5f, 10f), Vector3.Zero, new Vector3(0f, 1f, 0f)); m_Camera.SetPerspective(MathHelper.PiOver4, Width / (float)Height, 0.1f, 75f); var camera = m_MainCamera.AddComponent <BroEngine.Camera>(); camera.SetLookAt(new Vector3(0f, 5f, 10f), Vector3.Zero, new Vector3(0f, 1f, 0f)); m_MainCamera.tag = "Main Camera"; Editor.selectedObject = m_MainCamera; RenderFrame += OnRenderFrameEvent; }
// -------------- public GuiApplication(ILifetimeScope scope) : base(WINDOW_WIDTH, WINDOW_HEIGHT, GraphicsMode.Default, WINDOW_TITLE, GameWindowFlags.Default, DisplayDevice.Default, GL_MAJOR_VERSION, GL_MINOR_VERSION, GraphicsContextFlags.Default) { Instance = this; createControllers(scope); Icon = new Icon(typeof(GuiApplication), "appicon.ico"); GL.Enable(EnableCap.DepthTest); GL.Enable(EnableCap.CullFace); _cam = new Camera(); _cameraController.ProvideCamera(_cam); _cam.Transform.Translate(new Vector3(0, 0, -3)); _fbo = new Framebuffer(WINDOW_WIDTH, WINDOW_HEIGHT, FramebufferTarget.Framebuffer); _proj = Matrix4.CreatePerspectiveFieldOfView(MathHelper.DegreesToRadians(60f), (float)_fbo.Width / _fbo.Height, 0.1f, 100f); ImGuiRenderer.Init(); _guiComponents = new List <ImGuiComponent>(); ApplicationArea area = new ApplicationArea(); TreeView <TreeNode> outlineView = new TreeView <TreeNode>(); _treeController.SetTree(outlineView); area.AddChild(new Columns(2, new List <ImGuiComponent> { outlineView, new FramebufferArea(_fbo) }, new[] { 250f, -1 })); var menuBar = new MainMenuBar(_fileOpenController, _vramController, _configController, _cameraController, _exportController); if (string.IsNullOrWhiteSpace(_configController.Config.GameDataPath)) { // show the set game data path dialog if it hasn't yet been set menuBar.OpenSetGameDataPath(); } _updateAvailableModal = new Modal("New update available!", "Download at https://github.com/Figglewatts/LSDView/releases/latest"); _fileExportDialog = new FileDialog(_configController.Config.GameDataPath, FileDialog.DialogType.Save); _configController.Config.OnGameDataPathChange += () => _fileExportDialog.InitialDir = _configController.Config.GameDataPath; _exportController.ProvideFileExportDialog(_fileExportDialog); _guiComponents.Add(area); _guiComponents.Add(menuBar); _guiComponents.Add(_fileExportDialog); _guiComponents.Add(_updateAvailableModal); if (_updateCheckerController.IsUpdateAvailable()) { _updateAvailableModal.ShowModal(); } }