fix(draw): restore the 1.0.0 signatures of bj_draw_line and bj_draw_polyline #179

Merged
OragonEfreet merged 1 commit from fix/restore-line-abi into main 2026-08-01 16:04:18 +02:00
Owner

Passing the line mode as a parameter changed both signatures published in
1.0.0, which SemVer reserves for a major release. main is 1.1.0-alpha and
1.0.0 shipped on 2026-07-26, so that break was not one Banjo could make
yet.

Both functions take their original parameters again and draw a stepped
line. The mode moves to bj_draw_line_mode and bj_draw_polyline_mode,
which keep the bj_line_mode enum rather than spelling each mode as its
own function: a third mode will cost no new entry point, and only these
forms can take the mode from a variable.

bj_draw_line keeps its inline walk and bj_draw_line_mode calls into it,
not the other way round, so the hottest drawing loop gains no indirection.

Checked against release/1.0: every exported declaration of 1.0.0 is
unchanged, and a program written against those signatures recompiles
untouched and produces identical pixels.

Also date the 1.0.0 release in the changelog, which still read 2026-XX-XX.

Passing the line mode as a parameter changed both signatures published in 1.0.0, which SemVer reserves for a major release. main is 1.1.0-alpha and 1.0.0 shipped on 2026-07-26, so that break was not one Banjo could make yet. Both functions take their original parameters again and draw a stepped line. The mode moves to bj_draw_line_mode and bj_draw_polyline_mode, which keep the bj_line_mode enum rather than spelling each mode as its own function: a third mode will cost no new entry point, and only these forms can take the mode from a variable. bj_draw_line keeps its inline walk and bj_draw_line_mode calls into it, not the other way round, so the hottest drawing loop gains no indirection. Checked against release/1.0: every exported declaration of 1.0.0 is unchanged, and a program written against those signatures recompiles untouched and produces identical pixels. Also date the 1.0.0 release in the changelog, which still read 2026-XX-XX.
fix(draw): restore the 1.0.0 signatures of bj_draw_line and bj_draw_polyline
All checks were successful
C++ Compatibility / C++ Compatibility Check (pull_request) Successful in 7s
Documentation / build-docs (pull_request) Successful in 8s
QA / cert (pull_request) Successful in 29s
Build and Test / linux-linux-gcc / shared (pull_request) Successful in 18s
Build and Test / linux-linux-gcc / static (pull_request) Successful in 17s
Build and Test / linux-windows-mingw / shared (pull_request) Successful in 26s
Build and Test / linux-windows-mingw / static (pull_request) Successful in 26s
6a084d4c4d
Passing the line mode as a parameter changed both signatures published in
1.0.0, which SemVer reserves for a major release. main is 1.1.0-alpha and
1.0.0 shipped on 2026-07-26, so that break was not one Banjo could make
yet.

Both functions take their original parameters again and draw a stepped
line. The mode moves to bj_draw_line_mode and bj_draw_polyline_mode,
which keep the bj_line_mode enum rather than spelling each mode as its
own function: a third mode will cost no new entry point, and only these
forms can take the mode from a variable.

bj_draw_line keeps its inline walk and bj_draw_line_mode calls into it,
not the other way round, so the hottest drawing loop gains no indirection.

Checked against release/1.0: every exported declaration of 1.0.0 is
unchanged, and a program written against those signatures recompiles
untouched and produces identical pixels.

Also date the 1.0.0 release in the changelog, which still read 2026-XX-XX.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
OragonEfreet deleted branch fix/restore-line-abi 2026-08-01 16:04:18 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
OragonEfreet/banjo!179
No description provided.