Skip to content

Phase 1 - Fundamental Backend Rendering System, Basic Debugging & Input#2

Merged
jeffbox12 merged 11 commits into
mainfrom
phase1
May 13, 2026
Merged

Phase 1 - Fundamental Backend Rendering System, Basic Debugging & Input#2
jeffbox12 merged 11 commits into
mainfrom
phase1

Conversation

@jeffbox12
Copy link
Copy Markdown
Owner

@jeffbox12 jeffbox12 commented May 5, 2026

For some reason, the original Phase 1 PR was closed. I do not recall doing that at all, and I could not reopen the PR, so I created this one.

Summary

Implements the foundational basic rules for window behaviour and rendering system. Introduces the fundamental basics of debugging tools and input system, later to be improved and expanded upon.

Progress

Goals are subject to change

QoL build testing:
✅ Add workflow file - Automate building across all major platforms
✅ Implement versioning

Window Process Handling:
✅ HiDPI support - The window rescales appropriately.
✅ Windowed & borderless modes - Implemented Borderless mode that can be alternated with F11. For now, windowed mode is on by default.
➡️ Implement exclusive fullscreen mode - Moved to second phase. Exclusive full screen support requires fundamental architectural changes and refactor.
✅ Allow only single instance - Only one window can be opened at a time, and attempting to open another one will refocus the current opened instance. Controlling window behaviour from a different instance in Linux is not possible in Wayland, thus I omitted doing so in X11, so instead, a dialog box will show up.

Input:
➡️ Enable keyboard and controller input - Moved to second phase.
➡️ Architect a debug menu override system - Moved to second phase.

Fundamental rendering architecture:
✅ Implement FBO and Blit rendering system - Render a fixed resolution internally, independent of how big the window is
➡️ Render text into the pipeline - Moved to second phase. Requires character handling abstraction architecture for text object creation.
➡️ Rearchitect tick system - Moved to second phase. Big refactor is required for loop systems.

Debugging tools:
✅ Integrate Imgui in the rendering pipeline
➡️ Re-focus input to the special debugging tools - Moved to second phase.
✅ Create a toggleable basic dialog using a key combo - The key B is used to toggle the interface for now.
➡️ Create a basic interface with selectable widgets - Moved to second phase. Interactivity requires input system abstraction.
The user can interact with a debug menu, select widgets, and close the menu, the widgets staying persistently, and input focus goes back to the main program

@jeffbox12 jeffbox12 force-pushed the phase1 branch 6 times, most recently from 15243e7 to 9dc1826 Compare May 12, 2026 07:51
@jeffbox12 jeffbox12 marked this pull request as ready for review May 12, 2026 07:53
@jeffbox12 jeffbox12 self-assigned this May 12, 2026
@jeffbox12 jeffbox12 force-pushed the phase1 branch 6 times, most recently from b63be27 to d6480e9 Compare May 12, 2026 23:48
@jeffbox12 jeffbox12 merged commit 4039740 into main May 13, 2026
7 checks passed
@jeffbox12 jeffbox12 deleted the phase1 branch May 13, 2026 07:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant