Adding more core layer stuff. Can now boot.
This commit is contained in:
1 parent
16664c68b5
commit
5d6ca639fd
30 files changed
+1308
-36
No files matched your search
@@ -0,0 +1,41 @@
|
||||
# Modular Architecture & Tooling TODO
|
||||
|
||||
This document tracks upcoming tasks for Juliet's modular architecture (`core`, `appbin`, future `render`, `ui`, etc.) and the build/LSP generation tooling.
|
||||
|
||||
---
|
||||
|
||||
## 1. Tooling & Project Generator (`tools/new_project_gen.c`)
|
||||
- [x] **Dynamic Preceding Include Parser**:
|
||||
- Implemented dynamic parser `get_preceding_includes_from_inc_h(layer_name, target_file_path)` in `tools/new_project_gen.c`.
|
||||
- Reads `<layer>_inc.h` line-by-line and collects all `#include "..."` statements that appear strictly **above** the target header being analyzed.
|
||||
- Automatically injects those preceding includes via `/FI` so that any header opened in Neovim/clangd has its exact required preprocessor context with zero hardcoding.
|
||||
- [x] **Multi-Layer Cascade**:
|
||||
- Deduces layer hierarchy from `appbin_main.c` and supplies lower layer includes (`/FIcore/core_inc.h`, etc.) to upper layers automatically.
|
||||
|
||||
---
|
||||
|
||||
## 2. Core Module Implementation (`Juliet/core/`)
|
||||
- [ ] **Fill `core.c`**:
|
||||
- Implement base core routines (OS helpers, string utilities, arena allocation implementations, math helpers).
|
||||
- [ ] **Win32 Core Cleanup**:
|
||||
- Fix argument passing in `win32_core.c:55` (`main_thread_core_entry_point(argc, &argv)` vs `char** argv`).
|
||||
- Implement proper command line argument parsing into `String8`/`String16` arenas.
|
||||
- [ ] **Unit Tests for Core**:
|
||||
- Create standalone test executable or test entry point validating arena allocation, commit/decommit, and string routines.
|
||||
|
||||
---
|
||||
|
||||
## 3. Future Layers
|
||||
- [ ] **Render Layer (`Juliet/render/`)**:
|
||||
- Create `render_inc.h`, `render_inc.c`.
|
||||
- Implement D3D12 device initialization, command queues, swap chain, and memory allocators.
|
||||
- Add `#include "render/render_inc.h"` and `#include "render/render_inc.c"` to `appbin_main.c`.
|
||||
- [ ] **UI Layer (`Juliet/ui/`)**:
|
||||
- Create `ui_inc.h`, `ui_inc.c`.
|
||||
- Implement UI hierarchy, layout, text rendering, and input handling.
|
||||
|
||||
---
|
||||
|
||||
## 4. Build System & LSP Maintenance
|
||||
- [ ] Run `new_generate.bat` after adding new layers or changing layer include order in `appbin_main.c`.
|
||||
- [ ] Keep `new_build.bat` as the single-pass unity compiler command for lightning-fast build times.
|
||||
Reference in new issue
Block a user