반응형
Wayland에서는 서버(컴포지터/쉘)과 클라이언트(어플리케이션)이 프로토콜을 기반으로 통신한다. 프로토콜은 Wayland에서 기본으로 제공하는 프로토콜과, xdg(freedesktop)에서 제공하는 de facto 프로토콜, 그리고 서드파티에서 정의한 프로토콜로 구분된다. 아래는 Wayland에서 기본으로 제공하는 프로토콜이다.
참고자료: wayland.freedesktop.org/docs/html/apa.html
프로토콜 | 내용 | 싱글톤 |
wl_display | 가장 중요한 객체. 클라이언트 측면에서는 해당 객체를 통해 서버와 연결(cf. wl_display_connect)을 형성할 수 있다. 서버 측면에서는 wl_display가 wl_compositor를 소유하고 있다. 따라서 클라이언트에서 들어오는 데이터를 wl_compositor로 전달한다. 또한 내부 이벤트 큐를 통해 메인 이벤트 루프를 관리한다. (cf. wl_display_run) |
O |
wl_registry | wl_registry를 통해 클라이언트 오브젝트를 서버에 바인딩. 예를 들어, 서버에 있는 wl_compositor에 접근하기 위해서는 wl_registry_bind 함수를 통해 서버에 있는 wl_compositor를 클라이언트에서 생성한 오브젝트에 연결해야 한다. |
O |
wl_callback | 클라이언트에서 서버의 특정 동작이 완료되면 호출. | X |
wl_compositor | 여러 surface 객체들을 병합(컴포지팅)하여 하나의 output으로 출력 | O |
wl_shm_pool | 서버-클라이언트 간 공유 메모리 버퍼를 열어, 데이터 공유 지원. wl_shm_pool은 여러개 생성할 수 있다. | X |
wl_shm | 공유 메모리를 지원 shm pool을 생성하고, 해당 메모리 버퍼의 포멧을 설정할 수 있다. |
O |
wl_buffer | wl_surface의 데이터를 관리 wl_buffer를 통해wl_shm_pool 버퍼에 접근 가능하다. |
X |
wl_data_offer | wl_data_offer를 통해, 다른 클라이언트로부터 데이터를 전달받을 수 있다. wl_data_offer가 사용되는 대표적인 예는 drag-and-drop으로, 이를 활용하여 A 어플리케이션에서 파일을 끌어다, B 어플리케이션으로 이동할 수 있다. 이 프로토콜은 데이터를 받는 어플리케이션에서 사용하는 프로토콜이다. | X |
wl_data_source | wl_data_offer와 유사하며, 데이터를 제공하는 어플리케이션에서 사용 | X |
wl_data_device | wl_data_offer와 유사하나, seat 내에서 동작 | X |
wl_data_device_manager | wl_data_device를 관리 | O |
wl_shell_surface | wl_surface, 그 중 데스크탑 어플리케이션의 윈도우를 관리하는 프로토콜. 크기 변환(리사이즈), 이동, 최대화, 최소화 등의 인터페이스를 제공한다. |
X |
wl_surface | 스크린에 표시되는 사각형 영역을 의미. 위치좌표, 픽셀버퍼 등을 소유하고 있다. 즉, 우리가 보는 어플리케이션의 창은 wl_surface를 통해 관리되고 있다. |
X |
wl_seat | 입력 장치의 집합. 일반적으로 데스크탑에서 seat은 마우스와 키보드를 의미한다. |
X |
wl_pointer | 마우스 종류 디바이스 관련 인터페이스 제공. 예를 들어 포인터 이동, 클릭 등의 인터페이스가 있다. |
X |
wl_keyboard | 키보드 종류 디바이스 관련 인터페이스 제공. | X |
wl_touch | 터치종류 디바이스 관련 인터페이스 제공. | X |
wl_output | compositor에 의해 재구성된, 실제로 보이는 사각형 화면. 쉽게 말해 싱글 모니터 시스템에서는 output에 표현된 내용과 화면에 보이는 내용이 일치한다. |
X |
wl_region | 사각형의 영역들을 표현. | |
wl_subcompositor | subsurface를 컴포지팅. | |
wl_subsurface | wl_surface를 부모로 하는, 종속적인 surface. |
반응형
'오픈소스 읽기 (OLD) > 데스크탑환경 - weston (wayland)' 카테고리의 다른 글
4. Weston 컴포지터 살펴보기 - 컴포지팅 (3/3) (0) | 2020.08.21 |
---|---|
3. Weston 컴포지터 살펴보기 - 화면 갱신 (2/3) (0) | 2020.08.12 |
2. Weston 컴포지터 살펴보기 - 메인 플로우 (1/3) (0) | 2020.08.05 |
1. Weston 훑어보기 (0) | 2020.08.03 |
0. Wayland란? (+ Weston) (0) | 2020.08.03 |