protected override void DrawOverride(ref bool isGameViewFocused) { var windowPos = ImGui.GetCursorScreenPos(); var availableSize = ImGui.GetContentRegionAvail(); availableSize.Y -= ImGui.GetTextLineHeightWithSpacing(); if (availableSize.X <= 0 || availableSize.Y <= 0) { return; } Game.Panel.EnsureFrame( new Mathematics.Rectangle( (int)windowPos.X, (int)windowPos.Y, (int)availableSize.X, (int)availableSize.Y)); var inputMessages = isGameViewFocused ? ImGuiUtility.TranslateInputMessages(Game.Panel.Frame, Window.MessageQueue) : Array.Empty <InputMessage>(); Game.Update(inputMessages); Game.Render(); var imagePointer = ImGuiRenderer.GetOrCreateImGuiBinding( Game.GraphicsDevice.ResourceFactory, Game.Panel.Framebuffer.ColorTargets[0].Target); if (ImGui.ImageButton( imagePointer, availableSize, Vector2.Zero, Vector2.One, 0, Vector4.Zero, Vector4.One)) { isGameViewFocused = true; } if (isGameViewFocused) { ImGui.TextColored( new Vector4(1.0f, 0.0f, 0.0f, 1.0f), "Press [ESC] to unfocus the game view."); } else { ImGui.Text("Click in the game view to capture mouse input."); } }