Move outstanding work from TODO.md into the issue tracker
TODO.md carried two records in one file: what had been done, with the measurements behind it, and what was left. The second half is what a tracker is for, and keeping it here has already cost something -- AGENTS.md records a round where eleven entries described code that had already changed, and this file admitted to three more. Every open item is now an issue on source.starfort.tech/andrew/libakgl, labelled by kind and blast radius and milestoned by what it can land in: 0.9.x for anything that breaks no ABI, 0.10.0 for new or changed public symbols, 1.0.0 for the design work. Four are epics: the performance plan (#60), coverage (#61), actor rotation (#62), and the false header comments (#63). Verified against the tree before filing rather than transcribed. Three entries were already fixed and were not filed: the akgl_path_relative context leak, the akgl_draw_background test extension, and the SDL enumeration audit -- keyboards, gamepads and mappings are all freed in CLEANUP today. Two were reworded because the code had moved: the fonts item is a missing teardown entry point rather than a missing API, since akgl_text_unloadallfonts exists, and draw_world's tilemap call is already bounded by numlayers, so only the per-layer actor rescan remains. TODO.md keeps the part a tracker has no place for: why a decision went the way it did, what the measurement was, and which arguments turned out to be wrong. TODO.txt is deleted. Four of its eight entries had shipped -- actor-to-actor collision, actor-to-world collision, automatic facing, image layers -- and the four that had not are #74 through #77, with the GPU renderer's research links kept because that is the part that took the time. Every reference that named an item number or a moved section is repointed, in the manual, the headers, the tests and the examples. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-Authored-By: Andrew Kesterson <andrew@aklabs.net>
This commit is contained in:
@@ -347,8 +347,7 @@ static akerr_ErrorContext *frame(long frameno)
|
||||
* - akgl_tilemap_release is **not** called. Its layer loop destroys
|
||||
* `tilesets[i].texture` rather than `layers[i].texture`, so it double-frees
|
||||
* every tileset texture and never frees an image layer's, and it NULLs
|
||||
* nothing, so a second call is a use-after-free. TODO.md, "Known and still
|
||||
* open" item 2. `SDL_Quit` reclaims the textures correctly; calling the
|
||||
* nothing, so a second call is a use-after-free. TODO.md, "Defects". `SDL_Quit` reclaims the textures correctly; calling the
|
||||
* function that is supposed to would be worse than not.
|
||||
* - The pools are static storage. There is nothing to free and the process is
|
||||
* about to exit.
|
||||
|
||||
@@ -83,8 +83,8 @@ akerr_ErrorContext *jrpg_textbox_draw(void)
|
||||
// akgl_text_rendertextat refuses the empty string -- SDL_ttf reports "Text
|
||||
// has zero width" and the library passes that on as AKERR_NULLPOINTER,
|
||||
// while akgl_text_measure accepts it. The two disagree, so anything drawing
|
||||
// a line that might be empty checks for it. TODO.md, "Known and still
|
||||
// open".
|
||||
// a line that might be empty checks for it. TODO.md, "Found while
|
||||
// rewriting the Doxygen comments".
|
||||
if ( textbox_text[0] == '\0' ) {
|
||||
SUCCEED_RETURN(errctx);
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
* `movementlogicfunc`, which is the only hook the step calls.
|
||||
*
|
||||
* Two of the library's documented gaps are worked around here rather than
|
||||
* papered over. Both are in `TODO.md` under "Arcade physics feel".
|
||||
* papered over. Both are issues #29 through #32.
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
@@ -324,7 +324,7 @@ akerr_ErrorContext *ss_player_controls(int controlmapid, char *actorname)
|
||||
FAIL_ZERO_RETURN(errctx, actorname, AKERR_NULLPOINTER, "actorname");
|
||||
/* akgl_controller_pushmap checks the upper bound and not the lower one, so
|
||||
* a negative id indexes before the start of akgl_controlmaps. TODO.md,
|
||||
* "Known and still open" item 11. */
|
||||
* "Defects". */
|
||||
FAIL_NONZERO_RETURN(
|
||||
errctx,
|
||||
((controlmapid < 0) || (controlmapid >= AKGL_MAX_CONTROL_MAPS)),
|
||||
|
||||
Reference in New Issue
Block a user