-
-
Notifications
You must be signed in to change notification settings - Fork 0
Add Glfw3 windowing #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
* Added the Crystal module to the solution. * Imported varying interfaces for visual windows and displays from previous project iterations. * No additional changes were made.
* Added the previous works of the Glfw3 implementation to the Crystal module. * Resolved missing import in Core/CatalystApp.cs * Resolved missing import in Tooling/Analyzers/CachedDelegateGenerator.cs
* Added the previous works of the Glfw3 implementation to the Crystal module.
* Added Color128, Color32, & IColor interface to the Mathematics project
* Added the new IRenderer interface from 4 month-old CatalystUI's `dev`branch * Created a new concept "IRenderLayer" and "IRenderTarget." * Removed "IWindowDomain" and swapped it to be on the "IMultisensoryDomain."
* Updated the data and native connectors to allow for connecting to various layers, rather than being restricted to their immediate neighbors.
* Resolved prefix not being appended in the SerilogDebugContext * Add new variable to IWindow for a ThreadDelegateDispatcher * Removed hard requirement for the windowing API to be run on the main thread (still recommended though). * Resolved some debugging logs unnecessarily emitting the full namespace of the associated class.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces the Crystal module for CatalystUI, implementing windowing functionality using GLFW3, along with supporting infrastructure for display management, renderers, and native platform integration.
- Adds complete windowing API with IWindow, IDisplay, and IWindowLayer interfaces
- Implements GLFW3-based windowing with GlfwWindow, GlfwDisplay, and native connectors for Windows and macOS
- Includes renderer interfaces (IRenderer, IRenderTarget, IRenderLayer) for graphics rendering
- Refactors core threading and mathematics components to support windowing operations
Reviewed Changes
Copilot reviewed 49 out of 49 changed files in this pull request and generated 16 comments.
Show a summary per file
| File | Description |
|---|---|
| CatalystUI.Modules.Crystal.Core | Core interfaces and types for windowing, display, and rendering systems |
| CatalystUI.Modules.Crystal.Glfw3 | GLFW3 implementation of windowing layer with native platform connectors |
| CachedDelegateGenerator.cs | Adds System namespace import for generated code |
| ThreadDelegateDispatcher.cs | Refactors to expose Thread and ThreadId as public properties |
| Angle.cs | Refactors internal field to public property for better encapsulation |
| Color classes | Adds IColor interface and Color32/Color128 implementations |
| Various core files | Minor import reordering and code style improvements |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Glfw3/Window/GlfwWindow.cs
Outdated
Show resolved
Hide resolved
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Core/Renderer/RendererException.cs
Outdated
Show resolved
Hide resolved
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Core/Renderer/RendererException.cs
Outdated
Show resolved
Hide resolved
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Core/Renderer/RendererException.cs
Outdated
Show resolved
Hide resolved
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Glfw3/Window/GlfwWindow.cs
Show resolved
Hide resolved
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Glfw3/Window/GlfwDisplay.cs
Show resolved
Hide resolved
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Glfw3/Window/GlfwDisplay.cs
Show resolved
Hide resolved
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Glfw3/Window/GlfwDisplay.cs
Show resolved
Hide resolved
...les/Crystal/CatalystUI.Modules.Crystal.Glfw3/NativeConnectors/Glfw3WindowsNativeConnector.cs
Show resolved
Hide resolved
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Glfw3/Window/GlfwWindow.cs
Show resolved
Hide resolved
* Resolved INativeApi in the core not giving APIs an opportunity to initialize on a different thread. * Updated IWindowLayer to allow passing a different dispatcher.
8918840 to
626ba93
Compare
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Core/Window/IDisplay.cs
Show resolved
Hide resolved
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Core/Window/WindowIcon.cs
Show resolved
Hide resolved
RealCrazeOfficial
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Upon review, I found 15 grammatical changes in in-line comments.
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Core/Renderer/IRenderLayer.cs
Outdated
Show resolved
Hide resolved
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Core/Window/IDisplay.cs
Outdated
Show resolved
Hide resolved
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Core/Window/IWindow.cs
Outdated
Show resolved
Hide resolved
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Core/Window/IWindow.cs
Outdated
Show resolved
Hide resolved
CatalystUI/Modules/Crystal/CatalystUI.Modules.Crystal.Core/Window/WindowIcon.cs
Outdated
Show resolved
Hide resolved
Co-authored-by: Craze <51416587+RealCrazeOfficial@users.noreply.github.com> Signed-off-by: FireController#1847 <usfirepilot123@gmail.com>
RealCrazeOfficial
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Co-authored-by: Craze <51416587+RealCrazeOfficial@users.noreply.github.com> Signed-off-by: FireController#1847 <usfirepilot123@gmail.com>
RealCrazeOfficial
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
Thank you everyone for your reviews and efforts! |
📑 Summary
Primary changes were the introduction of the Crystal namespaces and the associated interfaces and supporting Glfw3 implementation for windowing.
⚒️ Changes
Caution
Accurately describing the changes made in this PR will greatly improve the speed at which we can review your PR. Semantic Versioning can be helpful in determining the scope of your change, and will help in determining the appropriate version number, merge location, and timing of the integration of your change.
➕ Additions
Added the following projects to the repository:
Additionally, changes from about four months ago in the original CatalystUI
developmentproject have now been migrated into the latest version, including a refactored implementation ofGlfwDisplayandGlfwWindow.✖️ Modifications
All changes are noted in the individual commits.
➖ Removals
💬 Review
Important
Accurately listing key items for review will help us review your PR more quickly. Please include large changes, breaking changes, and any other changes that may require special attention.
Reviewers will check off items in the list as they are reviewed, in addition to the normal GitHub review process. They may request changes if any items are not adequately addressed or add additional items as necessary.