본문 바로가기

compositor3

4. Weston 컴포지터 살펴보기 - 컴포지팅 (3/3) 스티브 잡스는 제록스(Xerox)의 팔로알토연구센터(PARC)에서 GUI에 대한 통찰을 얻고, 최초로 PC에 GUI를 도입하게 된다. 스티브잡스 전기에 따르면 잡스와 연구원들은 GUI를 개발하면서, 창들이 겹치는 기능을 구현하느라 꽤나 애를 먹었다고 한다. 당시 컴퓨터의 처리능력을 생각해보면, 실시간으로 여러 창들을 띄우고 컴포지팅하기 위해 얼마나 많은 최적화가 들어갔을지 채 짐작도 되지 않는다. 오늘날에는 컴퓨터의 처리능력이 스티브잡스 당시와 비교할 수 없이 좋아졌다. 그럼에도 여전히 (굳이 자원을 낭비할 필요는 없기 때문에) 컴포지팅을 효율적으로 할 수 있도록 weston은 레어이와 뷰를 사용한다. 레이어 위에 있는 weston 화면을 보자. 맨 위에는 시간정보를 제공하는 패널이 보이고, 아래에 세 .. 2020. 8. 21.
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.