I1 — AA폰트를 위젯/크롬에 배선
개요
GUI 통합 트랙 I1. 텍스트AA(opcode 788, stb_truetype 그레이커버리지 알파블렌딩)를
위젯.한선 / 브라우저크롬.한선의 모든 GUI 텍스트에 배선. 6x10 비트맵 폴백(RGB글쓰기 366)
제거 → Cocoa급 AA. 폰트 없을 때만 비트맵 폴백.
무엇을 했나
- 위젯.한선: 전역 _폰트핸들/_폰트준비 + 폰트초기화()(폰트로드 753 1회) + 글자폭()(텍스트폭 754 metric).
위젯_시작()이 폰트 자동 로드. _글자()가 텍스트AA(788) 우선, 폰트 없으면 RGB글쓰기(366) 폴백.
버튼/툴바/탭/입력 정렬을 고정폭(
8/9) 추정 → 글자폭() metric 으로 교체.
- 브라우저크롬.한선: 동일 패턴. 화면시작()이 폰트 로드, 텍스트그리기()가 AA 우선.
버튼 글리프 중앙정렬을 metric 기준으로.
- cmd(TEXT) 동시 발행 유지 — 렌더브라우저 HTML 경로 호환(위젯 24줄/크롬 17줄 TEXT).
- 자가검증에 화면저장()(FB_SAVE 355) PPM 덤프 + AA폰트 상태 출력 추가.
검증 (헤드리스, 실측)
- tests/aa_probe.c: PPM 글리프 가장자리 부분알파(중간그레이) 카운터. 중간:잉크 비율로 판별.
- A/B 대조(같은 텍스트): 비트맵 비율 0.295(잉크 우세) vs AA 788 비율 1.643(가장자리 우세).
→ AA 경로가 비트맵 대체했음 입증.
- 위젯 갤러리: 폰트핸들 0, 중간그레이 49048px, 자가검증 6/6 티.
- 크롬: 폰트핸들 0, 중간그레이 54586px, 자가검증 5/5 티.
- 정렬 metric: '취소'@14 = 22px(옛 16), '기본 버튼'@14 = 47px(옛 40) — 한글 글리프 실폭 반영.
관련 파일
- /Users/ef/CrownyOS/crownyc/libs/위젯.한선
- /Users/ef/CrownyBrowser/native/브라우저크롬.한선
- /Users/ef/CrownyOS/crownyc/libs/타이포.한선 (기존 788 래퍼, 재사용 검증)
- /Users/ef/CrownyOS/crownyc/tests/aa_probe.c (PPM 중간그레이 프로브)
- /Users/ef/CrownyOS/crownyc/tests/aa검증러너.한선, tests/ab비교러너.한선
잔여 이슈
- 시각 픽셀(디스플레이) 미실측 — 헤드리스 PPM/프로브로만 검증. 실제 창(crownyc_win) 시각확인은 후속.
- aa_probe 의 흰배경 가정: 크림 채움면 위젯에선 mid 카운트에 면이 섞임 → A/B 흰배경 대조가 정본 증거.