Skip to content

화면필기 v0.7.0 — 필기 지연 대폭 개선

Pre-release
Pre-release

Choose a tag to compare

@JunRepos JunRepos released this 17 May 04:22
7314878

핵심 개선

HDMI 외부 디스플레이 사용 시 펜 입력 후 0.1~0.2초 지연이 발생하던 문제를 해결했습니다.

원인

  1. LAYER_TYPE_SOFTWARE 사용으로 GPU 가속이 꺼져있었음 (영역 지우개 호환 때문)
  2. 매 onDraw 마다 strokes 전체를 다시 그림 → stroke 수가 늘수록 누적 비용
  3. 매 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 케이블이 짧고 좋은 등급일수록 좋음
    이게 보통 외부 디스플레이 측 지연의 가장 큰 변수입니다.