Aurore와 borealis

borealis가 하는 모든 것, 그리고 부족했던 것

Aurore는 xfangfang/borealis(wiliwili 브랜치)의 이름을 바꿔 PlayGuard와 PlayShelf를 위해 이어 가는 라이브러리입니다. borealis에 있는 것은 모두 남습니다: 뷰, 플랫폼, 드라이버. 여기에 더해진 것과 바뀐 것을 소개합니다.

비교 대상: Aurore의 main과, Aurore가 시작된 borealis wiliwili의 최신 커밋. Aurore는 아직 릴리스가 없습니다.

Aurore의 계보
  1. natinusala/borealis원래 라이브러리
  2. xfangfang/borealis · wiliwiliwiliwili용 브랜치, Aurore의 출발점
  3. 다른 포크의 커밋 45개작성자와 함께 가져옴
  4. PlayGuard의 커밋 21개PlayGuard가 직접 만든 borealis 패치
  5. JigSawFr/Aurore이름을 바꿔 이어 감

한눈에 보기

Aurore의 새 기능

borealis에 없는 것

Cadran은 기본으로 켜져 있고 호출 한 번으로 끌 수 있습니다. 나머지는 앱이 원할 때 쓸 수 있습니다.

나란히 보기

둘 다 가진 것, 그리고 다른 점

왼쪽은 현재 wiliwili 브랜치의 borealis, 오른쪽은 Aurore입니다.

모습과 레이아웃

borealis wiliwiliAurore
모습자체 모습, Switch와 비슷함기본은 Cadran, borealis의 모습은 호출 한 번이면 됨
색상밝은 테마와 어두운 테마, 코드에 고정모든 색이 테마 키, 앱 실행 중에 전환
레이아웃Yoga 2.0.0Yoga 3.2.1, 표준 flexbox, gap, 줄을 넘나드는 포커스가 있는 flexWrap
모서리와 그라디언트모든 모서리에 같은 반지름모서리마다 다른 반지름, 가로 그라디언트, 코드에서 만드는 그라디언트
포커스 강조깜박이는 테두리뷰에서 뷰로 미끄러지듯 이동, 잠시 후 흐려질 수 있음
이미지인터페이스 스레드에서 로드백그라운드 디코딩 가능, 너무 큰 이미지는 디코딩 전에 거부

텍스트와 입력

borealis wiliwiliAurore
번역4개 언어: 영어, 프랑스어, 러시아어, 중국어 간체15개 언어, 라이브러리·Cadran·힌트·접근성용
언어 전환시작할 때 한 번 로드앱 실행 중에 loadTranslations()로
문자열 조회조회에 예외 사용예외 없음, 어느 스레드에서도 안전
Switch 밖의 글꼴Switch 스타일 글꼴 포함자유 글꼴 Inter와 PromptFont, 중국어·일본어·한국어는 시스템 글꼴
키보드Enter, Escape, 화살표 정도컨트롤러의 모든 버튼을 키에, 다시 지정 가능
포커스숨겨진 박스가 받을 수 있었음숨겨지거나 파괴된 뷰는 절대 갖지 않음

빌드와 플랫폼

borealis wiliwiliAurore
언어C++17C++20, RTTI와 예외 켜짐
CMake 타깃borealisAurore::aurore, Aurore::test
옵션PLATFORM_*, USE_*, BRLS_*AURORE_*, 프리셋, 위치를 옮길 수 있는 설치
빌드 시스템CMake와 xmakeCMake만
플랫폼데스크톱, Switch, PS Vita, PS4, Android, iOS, tvOS같은 플랫폼과 브라우저(Emscripten, WebGL 2)
포함된 라이브러리Yoga 2.0.0, SDL 2.28.5, tinyxml2 9.0.0, nlohmann/json 3.11, glad 0.1.27Yoga 3.2.1, SDL 2.32.10, tinyxml2 11.0.0, nlohmann/json 3.12.0, glad 2.0.8
Switch 사운드libpulsar 링크, 사운드는 꺼짐libpulsar 제거
링크 열기어떤 주소든 셸을 거쳐http와 https만, 셸 없이
라이선스Apache 2.0borealis의 코드는 Apache 2.0, Cadran은 GPLv3이므로 Aurore로 만든 앱도 GPLv3

수정

그 과정에서 고친 것

borealis의 다른 포크, PlayGuard의 패치, 그리고 Aurore 자체 작업에서.

  • 입력 차단 카운터가 더 이상 넘쳐서 한 바퀴 돌지 않습니다.
  • 파괴된 뷰는 포커스에서 잊히고, 잃어버린 포커스는 부모 프레임으로 갑니다.
  • 탐색이 숨겨진 프레임과 슬라이더를 건너뜁니다.
  • SDL 컨트롤러: 뽑으면 닫히고, 다시 연결하면 모두 다시 읽으며, 한 프레임보다 짧은 입력도 놓치지 않습니다.
  • 각 재활용 목록이 자신의 너비를 확인하고, 삭제 풀을 비우는 동안 대기열에 들어간 뷰도 유지됩니다.
  • 글꼴 파서는 글꼴 자체 데이터 안쪽만 읽습니다.
  • 로거가 줄마다 바로 기록합니다.
  • 비활성화된 버튼은 더 이상 클릭되지 않습니다.

borealis 가족에게서 가져온 것

이 커밋들은 작성자와 cherry picked from 줄을 그대로 유지합니다. 다른 것들은 커밋에 출처를 밝히고 다시 작성했습니다.

옮겨 오기

앱이 바꾸는 것

대부분의 앱은 이름만 바꾸면 그대로 빌드되고 실행됩니다. 가이드에 모든 줄과 그다음 화면에서 확인할 것을 담았습니다.

  • 이름: 호환 계층 없음, 모든 brls 이름에 Aurore 이름이 있으며 찾아 바꾸기로 충분합니다.
  • 빌드: C++20, Aurore::aurore 타깃, AURORE_* 옵션.
  • 라이선스: Cadran이 모든 앱에 링크되므로 Aurore로 만든 앱은 GPLv3입니다.

borealis에서 옮겨 오기 →

my-app: borealis → Aurore
#include <borealis.hpp>#include <aurore.hpp>brls::Application::init();aurore::Application::init();BRLS_BIND(brls::Button, button, "go");AURORE_BIND(aurore::Button, button, "go");<brls:Box axis="column"><aurore:Box axis="column">textColor="@theme/brls/text"textColor="@theme/aurore/text"target_link_libraries(app borealis)target_link_libraries(app PRIVATE Aurore::aurore)cmake -DPLATFORM_DESKTOP=ON -DUSE_SDL2=ONcmake -DAURORE_PLATFORM=DESKTOP -DAURORE_WINDOW=SDL2BRLS_LANG=fr ./appAURORE_LANG=fr ./app

프로젝트

문서화, 테스트, 릴리스

borealis에서 앱을 옮기나요?

가이드가 한 단계씩 안내합니다: 서브모듈, 빌드, 리소스, 모습, 이름.