요약
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::list → std::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 모두 보존
JsonSettingsIO에 customFontPath / characterWrap / paragraphIndent 영속화 유지- Section 파일 포맷 v20 호환 유지
open-x4-sdk 서브모듈 upstream 핀에 맞춤- clang-format 21 / cppcheck CI 통과