F2 — 크롬 텍스트 AA 블릿 + 한선씨 주소창 입력 위젯
개요
브라우저 크롬을 진짜 한선씨로: (1) WebKit 래퍼 크롬 TEXT를 Cocoa NSFont 대신
788 AA fb 블릿으로, (2) 한선씨 주소창 입력 위젯(키 누적/캐럿/포커스).
무엇을 했는지
- VM (crownyc.c FB_SAVE 355):
CROWNY_FB_PPM 환경변수로 PPM 출력 경로
재지정 추가. 미설정 시 기존
/tmp/crownyos_gui.ppm 유지(회귀 0).
- 브라우저크롬.한선: cmd 모드에서
화면저장() 호출 추가 → fb_rgb(788 AA
그레이커버리지 포함)를 PPM으로 dump.
- crowny-browser.m (CrownyChromeView):
-
loadPPMAsCGImage() — VM이 dump한 P6 PPM → CGImage.
-
refreshChrome —
CROWNY_FB_PPM 전달 + 편집버퍼 주소 반영 + AA 이미지 로드.
-
drawRect: — AA 준비되면 fb 상단 92px를 CGImage 블릿하고 return(NSFont 경로
건너뜀). 미준비 시에만 cmd 벡터/NSFont 폴백.
-
accumulateKey: /
keyDown: /
beginAddressEditing /
commitAddressEditing
— 네이티브 키 → 한선씨 키누적 로직(ASCII) → 버퍼 누적 → 재렌더. Cocoa
NSTextField 오버레이 제거.
- 델리게이트
chromeNavigateTo: — Enter → navigate.
- 주소창입력위젯.한선 (신규, 위젯.한선 입력() 기반): 키누적/제출키인가/
키들누적 + 주소창렌더(788 AA) + 자가검증 6/6.
검증 (정직)
- VM 빌드 EXIT=0. 브라우저 빌드 EXIT=0, warning/error 0.
- 통합여정(원크라우니_통합여정.한선) 6/6 티 — 회귀 0.
- 주소창입력위젯.한선 자가검증 6/6 티.
- aa_probe: 크롬 fb PPM에 788 AA 부분알파 그레이 픽셀 50,817개 검출
(AA_PRESENT) — Cocoa NSFont 아닌 한선씨 AA가 fb 도달 확인.
- 네이티브 keyDown 누적 로직 단위검증(별도 .m) 6/6 티.
- 미실측(정직): 실제 디스플레이 시각 픽셀 + 실타이핑은 헤드리스 미실측.
블릿 경로/AA fb/키누적 로직은 코드+PPM+단위검증으로 입증.
- 미구현(정직): IME(한글 조합) — ASCII 우선. 코드값>127 UTF-8 조합버퍼 후속.
관련 파일
- /Users/ef/CrownyBrowser/native/crowny-browser.m (CrownyChromeView)
- /Users/ef/CrownyBrowser/native/주소창입력위젯.한선 (신규)
- /Users/ef/CrownyBrowser/native/브라우저크롬.한선 (화면저장 추가)
- /Users/ef/CrownyOS/crownyc/crownyc.c (FB_SAVE CROWNY_FB_PPM)
- /Users/ef/CrownyOS/crownyc/crownyc (재빌드 설치)
잔여 이슈
- IME 한글 조합 입력 미구현(ASCII 우선).
- 실디스플레이 시각/실타이핑 미실측(헤드리스 한계).
- 디스크 100% 환경 — VM stdout/PPM이 간헐적 sandbox kill(코드 무관).