Skip to content

Refactors api boundaries & resource management - #5

Merged
cppcooper merged 23 commits into
developfrom
refactor-api-boundaries
Sep 23, 2026
Merged

cppcooper merged 23 commits into
developfrom
refactor-api-boundaries

Conversation

@cppcooper

Copy link
Copy Markdown
Owner

The engine's integration of the OpenGL API needs further abstraction in order to make room for other APIs fulfilling the engine's needs. Reliance on VAO objects are a good example of this, there is no adapter yet; the VAO is directly integrated into the asset dependency chain. The display system is another good example with glfwmonitor integrated pretty high up in the system.

Various forms of adapters and other forms of intermediaries are necessary to resolve this issue and move OpenGL farther from the engine's implementation requirements.

Resource management has a few outstanding issues as well, and likely more will be revealed during implementation -> test -> debug -> implementation cycles.

We should be looking at comments at this stage too - with more surely to come in future PRs. Logging integration should probably be looked at after this PR merges, or soon after if more asset work or other things remain.

cppcooper and others added 23 commits September 22, 2026 14:41
Squashed commit of the following:

commit
Fixes block lookups and template test isolation

commit
Updates adjacent_left as a protected predecessor lookup

commit
Fixes partial block merges at allocation head

commit
Updates section lookup to use adjacent_left

commit
Exercise resource managers with deterministic invariants
Retain shared pool bookkeeping in object handles and let reservations own only unclaimed Block ranges. Migrate asset and CPU geometry release callbacks, preserve legacy interfaces, and correct batch allocation and constructor failure cleanup. Add lifetime and allocator regression coverage.
Describe pool state, reservation and allocator contracts using existing class comment style. Annotate lifecycle phases and invariants in the resource and block tests without changing their behavior.
Attach Doxygen comments directly to resource classes, concepts, and key methods. Give each concept its own description while retaining ordinary inline notes for test phases.
Mark setup, state transitions, and resulting invariants inside the block, memory, and reservation tests. Keep assertions and test behavior unchanged.
@cppcooper
cppcooper merged commit 00419db into develop Sep 23, 2026
@cppcooper
cppcooper deleted the refactor-api-boundaries branch October 15, 2026 01:10
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