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 비디오 버퍼 처리를 전용 오버레이 하드웨어로 전달할 수 있다.