릴리즈 노트

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

현재 버전v1.2.0-ko.17

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 통과

v1.1.1-ko.1

1.1.1-ko.12026년 2월 25일
GitHub

요약

v1.1.1-ko.0의 버그 수정 패치 릴리즈입니다. 슬립 후 사용자 폰트 및 설정이 초기화되는 문제를 해결하고, 조직 계정 이전에 따른 OTA 업데이트 URL을 수정했습니다.

수정 사항

버그 수정

  • 설정 초기화 문제 해결: 슬립/재부팅 후 사용자 커스텀 폰트, 글자 단위 줄바꿈, 첫 줄 들여쓰기 설정이 기본값으로 초기화되던 문제 수정
    • customFontPath, characterWrap, paragraphIndent 3개 필드가 JSON 설정 저장/로드에서 누락되어 있었음
  • OTA 업데이트 URL 수정: 리포지토리가 crosspoint-reader-ko 조직으로 이전됨에 따라 OTA 업데이트 API URL 수정

CI/CD

  • 빌드 파이프라인 수정: esptool을 pip으로 직접 설치하여 rich_click 의존성 문제 해결

유지된 한국어 전용 기능

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