Skip to content

fix: Header Re-Organization for Consistency and Readability - #497

Merged
JeanPhilippeKernel merged 1 commit into
JeanPhilippeKernel:developfrom
MathewBensonCode:header-reorganization
Jul 10, 2026
Merged

JeanPhilippeKernel merged 1 commit into
JeanPhilippeKernel:developfrom
MathewBensonCode:header-reorganization

Conversation

@MathewBensonCode

@MathewBensonCode MathewBensonCode commented Jan 30, 2026

Copy link
Copy Markdown
Contributor
  • Provide a consistent taxonomy for headers, where the libraries(ZEngine and Tetragrama) expose their Interface(the -I flag) as the root of the package and header naming is synchronized with namespaces
  • This is especially important in libraries like Tetragrama where you have headers from ZEngine and Tetragrama in the same header file which is imported from a third-party project like Obelisk.
  • Make the CMake files cleaner and more consistent by having a uniform naming convention for the Targets
  • Remove pre-compiled headers in order to provide a good foundation for C++ Modules instead.

This commit touches on many files, but the work done is mainly adding the name of the project and the full path to the actual header file. e.g. going from #include <ZEngineDef.h> to #include <ZEngine/ZEngineDef.h>

Related to #310 , there may be need to harmonize the structure of the CMakeFiles, either all match the ZEngine format with the Main subdirectory defining the project and then containing another subdirectory with the targets or to use the format in Tetragrama and Obelisk where the targets and project are in the main Subdirectory.

@MathewBensonCode
MathewBensonCode force-pushed the header-reorganization branch 2 times, most recently from 1fa0077 to 1c3b16f Compare February 2, 2026 21:54
@MathewBensonCode
MathewBensonCode marked this pull request as draft February 2, 2026 22:54
@MathewBensonCode
MathewBensonCode marked this pull request as ready for review February 3, 2026 10:50
@JeanPhilippeKernel JeanPhilippeKernel added the enhancement New feature or request label Feb 4, 2026
@JeanPhilippeKernel JeanPhilippeKernel added this to the Born baby (0.2.0) milestone Feb 4, 2026
@JeanPhilippeKernel JeanPhilippeKernel moved this to In Progress in ZEngine Board Feb 4, 2026
@MathewBensonCode
MathewBensonCode force-pushed the header-reorganization branch 2 times, most recently from 71875c3 to c621aac Compare March 31, 2026 11:51
@MathewBensonCode
MathewBensonCode force-pushed the header-reorganization branch from c621aac to d29b716 Compare July 3, 2026 20:41
@MathewBensonCode
MathewBensonCode marked this pull request as draft July 3, 2026 20:44
@MathewBensonCode
MathewBensonCode force-pushed the header-reorganization branch 4 times, most recently from 42d7131 to f3cf3db Compare July 9, 2026 18:17
@MathewBensonCode
MathewBensonCode marked this pull request as ready for review July 9, 2026 19:19
Comment thread .github/workflows/Engine-CI.yml Outdated
Comment thread Obelisk/CMakeLists.txt Outdated
Comment thread Tetragrama/CMakeLists.txt Outdated
@JeanPhilippeKernel JeanPhilippeKernel added area-linux Work on Linux system area-window Work on Window system area-macOS Work on macOS system labels Jul 10, 2026
@JeanPhilippeKernel JeanPhilippeKernel changed the title Header Re-Organization for Consistency and Readability fix: Header Re-Organization for Consistency and Readability Jul 10, 2026
- Provide a consistent taxonomy for headers, where the libraries(ZEngine and Tetragrama) expose their Interface(the -I flag) as the root of the package and header naming is synchronized with namespaces
- This is especially important in libraries like Tetragrama where you have headers from ZEngine and Tetragrama in the same header file
- Make the CMake files cleaner and more consistent by having a uniform naming convention for the Targets
- The naming is also now symetrical with the namespaces
@JeanPhilippeKernel
JeanPhilippeKernel self-requested a review July 10, 2026 10:54

@JeanPhilippeKernel JeanPhilippeKernel left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the re-org !

@JeanPhilippeKernel
JeanPhilippeKernel merged commit 15af098 into JeanPhilippeKernel:develop Jul 10, 2026
22 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in ZEngine Board Jul 10, 2026
@MathewBensonCode
MathewBensonCode deleted the header-reorganization branch July 10, 2026 15:41
JeanPhilippeKernel added a commit that referenced this pull request Aug 3, 2026
All 16 allocator bugs from memory-allocator-audit.md are fixed (PRs #497,
#531). Sprint 1 is complete; Sprint 2 is in progress. Hard deadlines table
updated to reflect current state. Emoji replaced with plain text labels.
This was referenced Aug 3, 2026
JeanPhilippeKernel added a commit that referenced this pull request Sep 3, 2026
…mpleted/

Verified every doc's completion claim against the actual codebase — file
existence, key symbols, checklist items — rather than trusting the Status
line alone. Two categories of finding:

Checklist-hygiene gaps (real implementation, boxes just never ticked):
render-resource-manager.md, vfs-ticket2/4/5. Ticked every item after
confirming the referenced file/symbol/test exists. render-resource-manager.md
also got a naming-divergence note — the doc's proposed GPUResource.h/
GPUBuffer/GPUImage shipped as GpuAllocator.h's BufferView/BufferImage
instead; functionally identical, different names.

Genuine correctness gap: fly-camera-redesign.md claimed 'Implemented' with
every one of its own checklist items unchecked, and describes an entirely
different architecture (FlyCameraInput/FlyCameraState/EditorCameraController)
than what's actually in FlyCameraController.h (CamState enum,
SetViewportRect self-gating). Corrected the status to flag this and pointed
at the real design so a future reader isn't misled.

memory-allocator-audit.md — added a scope note: its 13 bugs (#497/#531) are
genuinely all fixed, but later, unrelated allocator bugs were found and
fixed independently this cycle (#680-683, #697, #728, #731) — pointed to the
wiki's Memory Management page for the current picture.

Moved to ZEngine/docs/completed/ (verified, no open items): asset-manager.md,
memory-allocator-audit.md, vfs-design.md, vfs-ticket2/3/4/5/6,
gpu-allocator-rearchitecture.md, render-resource-manager.md,
system-scheduler.md, ui-system.md.

Left in place — genuinely partial: tlsf-allocator-integration.md (Phase 3
blocked), logging-policy.md (real outstanding verification/benchmark tasks),
fly-camera-redesign.md (needs a content rewrite, not just a status fix), and
everything already marked Design/Planning/In Progress/Partially implemented.

Cross-checked every backtick-quoted reference to the 12 moved filenames
across the rest of the docs tree — all are informal textual mentions, not
markdown hyperlinks, so nothing broke.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-linux Work on Linux system area-macOS Work on macOS system area-window Work on Window system enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants