FABRIC.md/ROADMAP.md/ttf_words.c: scope console REPL (4.4), obsolete M8, flip TTF to Cartesian y
FABRIC.md: renumber Artemis-last boundary 4.4 -> 4.5, add new 4.4 REPL item (console visual design scoped this session -- CANVAS is one shared region above the REPL strip, 640x480 scroll box centered within it, stroke font, ANSI color, VM-identity + ACL-identity prompt segments, ~1000-line scrollback), linked to repl-mockup.png. ROADMAP.md: mark M8 section OBSOLETE -- replaced by FABRIC.md 4.4, kept for history only. ttf_words.c: TTF-TEXT's y argument now Cartesian (origin bottom-left of the physical framebuffer, y increasing upward) instead of raw framebuffer coordinates, translated once via fb_height() - y. Verified via amd64 screendump (logs/20260811-070418/), text renders right-side-up with increasing y moving up the screen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
8e2c5dae5f
commit
20801ded72
@@ -94,7 +94,7 @@ static void ttf_word_text(VM *vm) {
|
||||
cell_t color, size, y, x, u, addr_cell;
|
||||
vaddr_t a;
|
||||
cell_t remaining;
|
||||
uint32_t pen_x;
|
||||
uint32_t pen_x, baseline_y;
|
||||
q48_16_t scale;
|
||||
|
||||
if (vm->dsp < 5) {
|
||||
@@ -123,6 +123,11 @@ static void ttf_word_text(VM *vm) {
|
||||
a = VM_ADDR(addr_cell);
|
||||
remaining = u;
|
||||
pen_x = (uint32_t) x;
|
||||
/* Caller-facing (x,y) is Cartesian: origin at the bottom-left of the physical
|
||||
* framebuffer, y increasing upward. fb_put_pixel() takes framebuffer coordinates
|
||||
* (origin top-left, y increasing downward), so flip once here per-call rather
|
||||
* than at every blit site. */
|
||||
baseline_y = fb_height() - (uint32_t) y;
|
||||
scale = q48_div(q48_from_u64((uint32_t) size), q48_from_u64(g_ttf_font.units_per_em));
|
||||
|
||||
while (remaining > 0) {
|
||||
@@ -138,7 +143,7 @@ static void ttf_word_text(VM *vm) {
|
||||
for (px = 0; px < bmp.width; px++) {
|
||||
if (bmp.pixels[py * bmp.width + px]) {
|
||||
fb_put_pixel(pen_x + px - TTF_CACHE_MARGIN,
|
||||
(uint32_t) y + py - (uint32_t) size - TTF_CACHE_MARGIN,
|
||||
baseline_y + py - (uint32_t) size - TTF_CACHE_MARGIN,
|
||||
(uint32_t) color);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user