화면필기 v0.7.0 — 필기 지연 대폭 개선
Pre-release
Pre-release
핵심 개선
HDMI 외부 디스플레이 사용 시 펜 입력 후 0.1~0.2초 지연이 발생하던 문제를 해결했습니다.
원인
LAYER_TYPE_SOFTWARE사용으로 GPU 가속이 꺼져있었음 (영역 지우개 호환 때문)- 매 onDraw 마다 strokes 전체를 다시 그림 → stroke 수가 늘수록 누적 비용
- 매 ACTION_MOVE 마다 화면 전체 invalidate
해결
- 완성된 stroke 를 ARGB_8888 오프스크린 비트맵에 누적
- 매 segment 만 incremental 하게 비트맵에 그림 (전체 재그리기 X)
- View.onDraw 는 비트맵 한 장만 그림 — stroke 수와 무관하게 일정 비용
- 부분 invalidate (segment 영역만)
- SOFTWARE 레이어 제거 → GPU 가속 복귀
- PorterDuff.CLEAR(영역 지우개)는 오프스크린 캔버스에서 처리되므로 GPU 호환성 무관
기대 효과
- 펜 입력 후 표시까지 체감 지연 감소 (특히 외부 디스플레이)
- stroke 가 수십~수백 개 쌓여도 그리기 속도 유지
- 단일 탭(점 찍기)도 자연스럽게 작동
다운로드
app-debug.apk 받아서 v0.6.0 위에 덮어쓰기 설치.
외부 디스플레이가 여전히 느리다면
HDMI 미러링 자체의 1~2 프레임 지연은 OS 영역이라 우리가 어쩔 수 없습니다. 다만:
- 외부 디스플레이의 "게임 모드" / "PC 모드" 활성화 — TV의 영화 모드는 후처리(보간·노이즈 제거)로 50~100ms 추가 지연
- HDMI 케이블이 짧고 좋은 등급일수록 좋음
이게 보통 외부 디스플레이 측 지연의 가장 큰 변수입니다.