zwcloud / ImGui

Immediate Mode GUI for C#
https://zwcloud.net/#project/imgui
GNU Affero General Public License v3.0
197 stars 21 forks source link

Implement multiple-forms #70

Open zwcloud opened 3 years ago

zwcloud commented 3 years ago
old finished tweaks - [x] Move methods inside Form.GUI.cs to Application: `NewFrame`, `EndFrame`, `Render` and `Log`. - [x] Make all forms (including main form) update and render properly - [x] Implement `IWindow.Opacity` - [x] Update window movement implementation - [x] issue: viewport resizing not invoked - [x] Implement viewport resizing for rendering, especially for text rendering - [x] Inline `Window.Render` and re-organize `MeshBuffer` in `Form` level - [x] Move `MeshBuffer` from `Window` to `Form` - [x] Adjust `MeshBuffer` usage in `Form`: don't clear `MeshBuffer` every time foreach window when build it from `Window.MeshList`. - [x] Make IMGUI states `GUIContext` a global static object: It is a global variable at `Application.ImGuiContext` now. - [x] Singe OpenGL context for multiple native windows - [x] Win32OpengGLRenderer: decuple IRenderer from IWindow (make per native window state like hwnd, dc, viewport and scissor rect change when `IRenderer::SetRenderingWindow`)

New developement of multiple-forms will be based on the MultipleNativeWindowTest project.

An openGL renderer correctly renders Mesh on two win32 windows.

Misc

This issue blocks #69