한국어
Linux Programming
 

Wayland 의 주요 객체들

makersweb 2020.06.04 17:34 조회 수 : 794

wl_display

핵심 글로벌 객체. 이것은 특별한 싱글톤 객체다. 컴포지터에 대한 연결을 나타내고 wl_display 싱글톤 객체에 대한 프록시 역할을한다. wl_display_connect() 또는 wl_display_connect_to_fd()로 생성한다.

 

wl_registry

일반적으로 서버의 실제 개체(예 : 입력 장치)를 나타내거나 확장 기능을 제공하는 단일 객체이다.

클라이언트가 레지스트리 오브젝트를 생성하면 레지스트리 오브젝트는 현재 레지스트리에있는 각 글로벌에 대한 이벤트를 생성한다.

 

wl_callback

클라이언트는 '완료'이벤트를 처리하여 관련 요청이 완료되면 알림을받을 수 있다.

 

wl_compositor

컴포지터는 여러 표면의 컨텐츠를 하나의 표시 가능한 출력으로 결합하는 싱글톤 객체.

 

wl_shm_pool

wl_shm_pool 객체는 컴포지터와 클라이언트간에 공유되는 메모리를 캡슐화한다.

 

wl_shm

shared memory를 지원하는 싱글톤 객체.

클라이언트는 create_pool 을 요청하여 wl_shm_pool 객체를 생성할 수 있다.

 

wl_buffer

버퍼는 wl_surface 에 컨텐츠를 제공한다. 버퍼는 wl_drm, wl_shm 등과 같이 팩토리 인터페이스를 통해 작성된다.

 

wl_seat

시트는 키보드 및 마우스, 터치장치들의 그룹이다. 입력장치는 전역 객체로 사용된다.

 

wl_surface

서페이스는 화면에 표시되는 직사각형 영역이다. 위치, 크기 및 픽셀 정보가 있다.

"역할(role)"이 없는 서페이스는 쓸모가 없다. 컴포지터는 그것을 언제, 어디서, 어떻게 표현할 지 모르기 때문이다. 역할은 wl_surface의 목적이라 할 수 있다.

역할의 예로는 포인터 (wl_pointer.set_cursor 에서 설정 한 커서), 드래그 아이콘 (wl_data_device.start_drag), 하위 서페이스(wl_subcompositor.get_subsurface) 및 쉘 프로토콜에 의해 정의 된 창(예 : wl_shell.get_shell_surface)이 있다.

wl_surface는 한 번에 하나의 역할 만 할 수 있다. 처음에는 wl_surface 에 역할이 없고 wl_surface에 역할이 부여되면 wl_surface 오브젝트의 전체 수명 동안 영구적으로 설정된다. 관련 인터페이스 사양에서 명시 적으로 금지하지 않는 한 현재 역할을 다시 부여 할 수 있다.

서페이스의 역할은 wl_pointer.set_cursor 와 같은 다른 인터페이스의 요청에 의해 제공된다. 요청은 wl_surface에 역할을 제공한다고 명시적으로 언급되어야한다. 클라이언트가 wl_surface 를 파기하려는 경우 그 전에 wl_surface 의 'role object'를 파기해야한다.

 

wl_subsurface

SubSurface에는 하나의 부모 서페이스가 있다. 특히 SubSurface는 부모 영역에 자동으로 클리핑되지 않는다. 부모가 숨겨 지거나 NULL wl_buffer가 적용되면 SubSurface도 숨겨진다. 

SubSurface에는 wl_surface 요청과 달리 wl_subsurface 요청으로 관리되는 다른 종류의 상태가 있다.

 

wl_subcompositor

SubSurface 컴포지터기능을 제공하는 전역 객체. 하위 서페이스가 연결된 wl_surface를 부모 서페이스라고한다. 하위 서페이스를 임의로 중첩하여 하위 표면 트리를 만들 수 있다.

SubSurface 트리의 루트 Surface가 기본 Surface이다. SubSurface에는 항상 부모가 있어야하므로 주 표면은 하위 표면 일 수 없다. SubSurface가 있는 주 표면은 창을 형성한다. SubSurface의 목표는 창에서 일부 합성 작업을 클라이언트에서 컴포지터로 오프로드하는 것이다. 대표적인 예는 별도의 wl_surface 객체에 장식과 비디오가있는 비디오 플레이어다.

이를 통해 컴포지터는 가능한 경우 YUV 비디오 버퍼 처리를 전용 오버레이 하드웨어로 전달할 수 있다.

 
번호 제목 글쓴이 날짜 조회 수
44 리눅스 Qt 응용프로그램 AppImage 로 구축 makersweb 2024.01.07 389
43 GRUB의 timeout 설정 makersweb 2023.11.07 362
42 lubuntu 22.04 LTS 설치 file makersweb 2023.01.23 1141
41 시스템에서 사용 가능한 D-Bus 서비스를 보려면? makersweb 2022.12.29 1026
40 리눅스에서 네트워크 구성 makersweb 2022.06.11 2737
39 D-Bus ObjectManager file makersweb 2022.02.12 524
38 ifconfig 는 대부분 ip 명령으로 대체 makersweb 2022.02.12 1143
37 SocketCAN 유틸 사용방법 file makersweb 2022.02.05 6624
36 dbus-broker를 기본 DBus 구현으로 설정 makersweb 2021.01.20 985
35 리눅스 오디오 스택과 아키텍처 file makersweb 2020.09.02 2767
34 wayland-scanner 를 통해 Wayland 프로토콜 코드생성 makersweb 2020.06.08 830
33 Wayland 의 Client Application 프로그래밍 기본 루틴 makersweb 2020.06.04 1522
» Wayland 의 주요 객체들 makersweb 2020.06.04 794
31 Weston 의 설명 및 관련 컴포넌트 makersweb 2020.06.03 2368
30 64비트 리눅스에서 32비트 응용프로그램을 실행하려면 makersweb 2020.02.29 1682
29 initramfs (initial ram file system: 초기 램 파일 시스템) makersweb 2020.02.25 1814
28 플랫폼 디바이스 드라이버 개발 시 많이 사용되는 커널 API 및 매크로 makersweb 2020.01.28 4603
27 PATH에 새로운 경로 추가 makersweb 2019.09.19 378
26 리눅스 컴파일러 최신으로 업데이트 linux 2018.12.26 1879
25 libblkid - USB Storage의 정보 가져오기 makersweb 2018.10.18 647