libbgi: тривиальные аксессоры → inline в заголовках (17 модулей удалено)

setcolor/getcolor/setbkcolor/getbkcolor/getmaxx/getmaxy/getmaxcolor/
getx/gety/moveto/moverel/setfillstyle/graphresult (graphics.h) и
gfx_get_bank/gfx_set_bank/gfx_get_draw_page/gfx_get_visible_page
(gfx.h) определены inline в публичных заголовках; state-переменные
объявлены там же (хранилище прежнее — _bgi_state.c/_gfx_state.c).

Именно `inline` БЕЗ static: проверено артефактами (.asm) — SDCC 4.5
инлайнит вызов при всех наших флагах (--opt-code-size/--opt-code-speed/
--max-allocs) и не эмитит standalone-тело; `static inline` эмитил бы
мёртвую копию каждого аксессора в КАЖДЫЙ включивший модуль.  Отказ
инлайнить = громкая ошибка линковки (все 47 программ слинковались).

Экономия ~30-40Т на вызов, минус 17 .rel; по _CODE размер-нейтрально
(сайт вызова ≈ телу).  size_baseline: bgitest +267/accfill +528 — это
НЕ inline, а run-рендер текста из ba09c0b (draw_scaled потянул
vspan_raw+vfill256 и сам вырос) — цена за ~2-6× скорость текста.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-10 21:21:26 +03:00
parent ba09c0bd05
commit 5de2f06cfb
21 changed files with 58 additions and 176 deletions
-7
View File
@@ -1,7 +0,0 @@
/* getbkcolor — текущий фоновый цвет. */
#include "../_bgi.h"
color_t getbkcolor(void)
{
return _bgi_bg;
}
-7
View File
@@ -1,7 +0,0 @@
/* getcolor — текущий цвет рисования. */
#include "../_bgi.h"
color_t getcolor(void)
{
return _bgi_fg;
}
-7
View File
@@ -1,7 +0,0 @@
/* getmaxcolor — максимальный индекс цвета (255 в 256-цветном режиме). */
#include "../_bgi.h"
color_t getmaxcolor(void)
{
return _bgi_maxcolor;
}
-7
View File
@@ -1,7 +0,0 @@
/* getmaxx — максимальная координата X (ширина-1). */
#include "../_bgi.h"
int getmaxx(void)
{
return _bgi_maxx;
}
-7
View File
@@ -1,7 +0,0 @@
/* getmaxy — максимальная координата Y (высота-1). */
#include "../_bgi.h"
int getmaxy(void)
{
return _bgi_maxy;
}
-7
View File
@@ -1,7 +0,0 @@
/* getx — текущая позиция X. */
#include "../_bgi.h"
int getx(void)
{
return _bgi_cx;
}
-7
View File
@@ -1,7 +0,0 @@
/* gety — текущая позиция Y. */
#include "../_bgi.h"
int gety(void)
{
return _bgi_cy;
}
-10
View File
@@ -1,10 +0,0 @@
/*
* gfx_get_bank — текущий байт страницы W3 (0x50..0x5F).
*/
#include "../_bgi.h"
uint8_t gfx_get_bank(void)
{
return _gfx_bank;
}
-10
View File
@@ -1,10 +0,0 @@
/*
* gfx_get_draw_page — кэшированный номер рисуемой страницы (0/1).
*/
#include "../_bgi.h"
uint8_t gfx_get_draw_page(void)
{
return _gfx_draw_page;
}
-10
View File
@@ -1,10 +0,0 @@
/*
* gfx_get_visible_page — кэшированный номер видимой страницы (0/1).
*/
#include "../_bgi.h"
uint8_t gfx_get_visible_page(void)
{
return _gfx_visible_page;
}
-10
View File
@@ -1,10 +0,0 @@
/*
* gfx_set_bank — задать байт страницы W3 (0x50..0x5F) для gfx-записей.
*/
#include "../_bgi.h"
void gfx_set_bank(uint8_t bank)
{
_gfx_bank = bank;
}
-9
View File
@@ -1,9 +0,0 @@
/* graphresult — код последней ошибки; вызов сбрасывает его в grOk. */
#include "../_bgi.h"
int graphresult(void)
{
int r = _bgi_result;
_bgi_result = grOk;
return r;
}
-8
View File
@@ -1,8 +0,0 @@
/* moverel — сдвинуть текущую позицию относительно. */
#include "../_bgi.h"
void moverel(int dx, int dy)
{
_bgi_cx += dx;
_bgi_cy += dy;
}
-8
View File
@@ -1,8 +0,0 @@
/* moveto — задать текущую позицию (CP). */
#include "../_bgi.h"
void moveto(int x, int y)
{
_bgi_cx = x;
_bgi_cy = y;
}
-7
View File
@@ -1,7 +0,0 @@
/* setbkcolor — задать фоновый цвет (cleardevice, фон текста). */
#include "../_bgi.h"
void setbkcolor(color_t color)
{
_bgi_bg = (uint8_t)color;
}
-7
View File
@@ -1,7 +0,0 @@
/* setcolor — задать текущий цвет рисования. */
#include "../_bgi.h"
void setcolor(color_t color)
{
_bgi_fg = (uint8_t)color;
}
-8
View File
@@ -1,8 +0,0 @@
/* setfillstyle — задать паттерн и цвет заливки (bar/fillpoly/…). */
#include "../_bgi.h"
void setfillstyle(int pattern, color_t color)
{
_bgi_fill_pattern = (uint8_t)pattern;
_bgi_fill_color = (uint8_t)color;
}