Bosio 창 관리자는 앱 이미지를 구면 위치에 놓고 창 겹침·포커스·입력을 처리합니다. 그 결과를 정이십면체 삼각 셀에 합성하면 출력 코어가 현재 자세에서 필요한 셀을 읽어 화면에 표시합니다.
창과 IPC
데몬은 Unix 도메인 소켓 /tmp/bosio-wm.sock으로 JSON 메시지를 받습니다. 앱은 이 프로세스 간 통신(IPC)으로 구면 창을 만들고 RGB 이미지를 보내며 입력 이벤트를 읽습니다. 창 관리자는 여러 앱의 창이 겹치는 순서와 포커스를 관리합니다. BoAYo SDK는 이 기능에 앱 창의 아래 캡션을 덧붙입니다.
합성에서 출력 코어까지
C++ 합성기는 ARM의 NEON 명령을 사용합니다. 창 내용의 일부가 바뀌면 안티에일리어싱에 쓰이는 픽셀 범위와 겹치는 삼각 셀만 다시 합성해 BPT1 데이터로 보냅니다. 창 위치·크기·겹침이 바뀌거나 아래 창의 색을 다시 계산해야 할 때는 전체 장면을 보냅니다. 정이십면체 프레임버퍼는 Bosio 창 관리자가 관리하므로 앱 하나가 화면 전체를 차지하지 않습니다.
입력과 포커스
마우스 클릭과 BTN2 시선 클릭은 같은 창 입력 경로로 처리됩니다. 클릭한 위치에서 가장 위에 있는 창에 포커스를 주고 해당 앱으로 이벤트를 보냅니다. BoAYo 런처 패널은 앱 창 위에 표시되지만, 패널 바깥을 클릭하면 패널만 닫힙니다. 그 위치에 앱 창이 있다면 클릭도 그 앱에 전달되고 기존 창은 계속 남습니다.
장면 갱신 속도와 영상 속도
출력 코어는 저장된 장면을 읽어 HDMI 영상을 계속 만듭니다. 창 내용의 변경은 Bosio가 필요한 셀을 합성하고 출력 코어에 보낸 뒤 화면에 나타납니다. HDMI 출력 프레임률과 창 내용 갱신 속도의 차이는 화질과 성능에서 설명합니다.
bosio_SphericalWM에 WM 데몬, IPC 클라이언트, 네이티브 합성기, 부분 갱신, 보드 서비스와 센서 허브 RTL이 함께 있습니다.