Repository navigation
Refactors api boundaries & resource management - #5
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.