릴리즈 노트

CrossPoint Reader 한국어 펌웨어 버전별 변경사항

현재 버전v1.2.0-ko.15

v1.2.0-ko.2

1.2.0-ko.22026년 4월 17일
GitHub

요약

KoPub Batang 14pt 기본 EPUB 글꼴에 1.2.0-ko 재생성 과정에서 누락됐던 한자(CJK Unified Ideographs)CJK 기호 및 구두점 글리프를 복원합니다. 1.1.1-ko.1에서는 포함돼 있었으나 1.2.0-ko.0 폰트 재생성 시 한글 범위만 지정되어 빠졌던 회귀입니다. 사용하지 않는 Eulyoo 폰트는 완전 제거했습니다.

한국어 버전 변경 사항

수정

  • 한자/CJK 기호 복원 (회귀): kopub_14_regular에 아래 유니코드 범위를 다시 추가.
    • U+3000–U+303F CJK Symbols and Punctuation (17자)
    • U+4E00–U+9FFF CJK Unified Ideographs / 한자 기본 (4,620자)
    • 영향: 1.2.0-ko.0 / 1.2.0-ko.1에서 한자 포함 EPUB을 열면 한자가 전부 ? 또는 빈 사각형으로 렌더링되던 문제 해결.

정리

  • Eulyoo 폰트 완전 제거: KoPub Batang이 EPUB reader 폰트, Pretendard가 시스템/UI 폰트로 역할이 확정되어 Eulyoo1945는 더 이상 필요하지 않음.
    • lib/EpdFont/builtinFonts/eulyoo_14_regular.h 삭제 (~99K 라인 플래시 절감)
    • lib/EpdFont/source/Eulyoo1945/*.ttf 제거
    • main.cppSdFontIndex::SD_EULYOO_* 엔트리 제거
    • lib/EpdFont/scripts/build-font-ids.shconvert_all_korean_fonts.sh 정리

유지된 한국어 전용 기능

  • UnifiedFontFamily / SdFontFamily 글꼴 시스템
  • 합성 볼드(Synthetic Bold) 렌더링
  • 자간 조절 / 첫 줄 들여쓰기 / 글자 단위 줄바꿈
  • SD 카드 커스텀 글꼴 로딩
  • SD 폰트 advanceX fp4 업캐스트 (1.2.0-ko.1에서 수정)

v1.2.0-ko.1

1.2.0-ko.12026년 4월 17일
GitHub

요약

SD 카드에서 로드한 커스텀 한글 글꼴이 모든 글자가 1픽셀씩 겹쳐서 표시되던 버그를 수정합니다 (1.2.0-ko.0 회귀). KoPub Batang(빌드 내장)은 영향 없음.

한국어 버전 변경 사항

수정

  • SD 카드 폰트 글자 겹침 (회귀): upstream 1.2.0(#1168 fixed-point fractional x-advance)에서 EpdGlyph::advanceX가 12.4 고정소수점(픽셀×16) uint16_t로 바뀌었으나, SD 폰트 로더가 기존 .epdfont v1 파일의 정수 픽셀 uint8_t advanceX를 그대로 대입하여 렌더러가 16분의 1 픽셀로 해석. 모든 글자가 1픽셀씩만 진행해 겹쳐 보이던 문제를 수정.
    • SdFont::loadGlyphFromSD에서 << fp4::FRAC_BITS로 픽셀→fp4 업캐스트
    • SdFont::getTextDimensions에서 fp4::toPixel로 누적
    • 기존 .epdfont 파일 재생성 불필요 (포맷 v1 그대로 호환)

문서

  • docs/sd-font-format.md 신규: .epdfont v1 바이너리 레이아웃, 픽셀↔fp4 컨벤션, v2 마이그레이션 가이드.

유지된 한국어 전용 기능

  • UnifiedFontFamily / SdFontFamily 글꼴 시스템
  • 합성 볼드(Synthetic Bold) 렌더링
  • 자간 조절 / 첫 줄 들여쓰기 / 글자 단위 줄바꿈
  • SD 카드 커스텀 글꼴 로딩

v1.2.0-ko.0

1.2.0-ko.02026년 4월 16일
GitHub

요약

upstream 1.2.0 (커뮤니티 기여 155건, 신규 기여자 30명) 변경 사항을 반영한 한국어버전 릴리즈입니다. 커닝/리거처 지원, 각주 내비게이션, EPUB 최적화, 충전 표시, SD 크래시 덤프 등 대규모 개선이 포함되었으며 한국어 전용 글꼴/타이포그래피 기능은 모두 유지됩니다.

upstream v1.2.0 주요 변경 사항

기능

  • 커닝 & 리거처: 본격적인 커닝과 리거처 지원, 분수 단위(fixed-point) x-advance로 글자 배치 정확도 향상
  • 각주 내비게이션: 각주 참조에서 본문으로 점프 후 다시 돌아오기 / Slim footnotes 지원
  • EPUB 최적화기: 기기 내에서 EPUB을 정리·재가공하여 호환성 개선
  • 배터리 충전 표시: 충전 중일 때 배터리 아이콘에 시각 표시
  • 크래시 덤프: USB 미연결 상태에서도 SD 카드에 크래시 리포트 저장
  • WebDAV 지원, 자동 페이지 넘김, 현재 페이지 QR, 상태바 분할 설정, 스크린샷 캡처
  • 다중 선택 파일 삭제, BMP 뷰어, 숨김 디렉터리 탐색, 롱클릭 파일 삭제
  • 다음 챕터 사전 인덱싱으로 챕터 경계 페이지 전환 지연 감소
  • JSON 기반 설정 마이그레이션, 밝은/어두운 테마 기반 작업
  • 신규 언어: 터키어, 덴마크어, 핀란드어, 폴란드어, 네덜란드어, 벨라루스어, 이탈리아어, 우크라이나어, 루마니아어, 카탈로니아어, 베트남어, 카자흐어
  • WiFi 호스트네임: CrossPoint-Reader-XXXXXXXXXXXX 형식
  • 버전 화면에 git branch 표시

수정

  • CSS display:none 처리 / 이미지 레이아웃 버그 수정
  • 안티앨리어싱 페이지에서 배터리 퍼센트 겹침 수정
  • 슬립 루틴을 원본 펌웨어 방식으로 복구
  • 영어 축약형 줄바꿈 방지, 아포스트로피 하이프네이션 처리
  • -fno-exceptions 빌드 호환성, I18n 번역 정리로 플래시 사용량 감소
  • 부트루프 로깅 / 로드 액세스 폴트 / OPDS 다운로드 / HalFile 스레드 안전성 개선

성능

  • 텍스트 레이아웃을 std::liststd::vector로 전환
  • HTML 엔티티 조회 O(log n)
  • JPEG 디코드를 picojpeg → JPEGDEC로 교체 (이미지 디코드 5–20% 가속)
  • 폰트 압축 개선으로 플래시 사용량 절감
  • 글꼴 렌더링 / 문자열 할당 핫패스 다수 제거

한국어 버전 변경 사항

유지된 한국어 전용 기능

  • UnifiedFontFamily / SdFontFamily 글꼴 시스템 (EpdFontFamily + SD 카드 폴백)
  • 합성 볼드(Synthetic Bold) 렌더링: 볼드 변형이 없을 때 더블 드로우로 굵게 표시
  • 자간 조절 / 첫 줄 들여쓰기(paragraphIndent) / 글자 단위 줄바꿈(characterWrap)
  • SD 카드 커스텀 글꼴 로딩 (FontSelectionActivity)
  • 기본 EPUB 글꼴 KoPub Batang 14pt (빈 customFontPath ⇒ 기본값)
  • 하이프네이션 게이트: characterWrap == 0일 때만 동작 (한국어 글자 단위 줄바꿈에선 비활성)
  • 기본 언어 한국어 (Language::KOREAN), 기본 characterWrap = 1

내부

  • upstream 1.1.1 → 1.2.0 머지: 폰트 시스템 / 설정 UI 충돌 해결, Korean Invariants 모두 보존
  • JsonSettingsIOcustomFontPath / characterWrap / paragraphIndent 영속화 유지
  • Section 파일 포맷 v20 호환 유지
  • open-x4-sdk 서브모듈 upstream 핀에 맞춤
  • clang-format 21 / cppcheck CI 통과
30개의 릴리즈 중 13-15