본문 바로가기

컴포지터3

3. Weston 컴포지터 살펴보기 - 화면 갱신 (2/3) Weston은 다양한 역할을 수행한다. Input handling, Keyboard shortcut, 대기상태 enter / exit 등등. 그 중 가장 중요한 역할은 Desktop GUI의 변경사항을 처리하고, 이를 표현하는 것이다. 이를 다른말로 하면, 데스크탑의 윈도우들을 컴포지팅하는 일이다. 여기서는 weston 컴포지터가 화면을 어떤 원리와 구조로 화면을 갱신하고, 컴포지팅하는지 살펴보려고 한다. Weston 컴포지터 화면 갱신 구조 weston-flower 예제를 실행하면 일정 주기마다 화면이 변한다. Desktop App(weston-flower)와 Weston 컴포지터는 화면 변화를 처리하기 위해 다음과 같은 동작을 수행한다. 앱은 Wayland 서버에 프로토콜을 보낼 수 있는 handle.. 2020. 8. 12.
2. Weston 컴포지터 살펴보기 - 메인 플로우 (1/3) Weston 컴포지터는 Weston의 동작을 준비/실행하는 핵심 컴포넌트이다. Weston 컴포넌트가 하는 일은 크게 두 가지다. 하나는 Wayland 객체, Backend 컴포넌트, Shell 컴포넌트를 생성 / 로딩하고, 실행하는 것이고, 다른 하나는 주요 Wayland Interface의 동작(= 컴포지팅)을 정의하는 일이다. Weston 컴포지터의 코드는 compositor 폴더에서 찾을 수 있으며, libweston 폴더를 참조한다. 워크플로우와 실제 소스코드를 보며, Weson compositor가 어떤식으로 동작하는지 알아보자. (자세한 설명은 코드 주석 참조) // compositor/main.c WL_EXPORT int wet_main(int argc, char *argv[]) { str.. 2020. 8. 5.
1. Weston 훑어보기 소스 다운로드: git clone gitlab.freedesktop.org/wayland/weston.git 소스 태그: 8.0.0 (commit - 33b06bde) 주 언어: C Weston은 Gnome, Kde와 마찬가지로, 리눅스 데스크탑 환경이다. 즉 weston을 통해 우리는 리눅스에서 GUI를 사용할 수 있다. Weston은 Gnome, Kde가 제공하던 주요 기능들을 제공한다. 예를 들어 GUI 앱 윈도우 생성, 리사이즈, 이동, 창 겹치기, 마우스 입력 전달 등등이 있다. 또한 구조화가 잘 되어있기 때문에 다양한 환경(fb, drm, wayland/x11)에서 유연하게 사용 가능하며, 다양한 구현체(desktop-shell, ivi-shell)이 존재한다. 이러한 장점들 덕분에, 데스크탑.. 2020. 8. 3.