Xorg에서 서버측 구성과 클라이언트측 구성의 차이점은 무엇입니까?

Xorg에서 서버측 구성과 클라이언트측 구성의 차이점은 무엇입니까?

xcompmgr은 다음 옵션을 제공합니다:

-s     Server-side compositing with hard-edged shadows.

실험을 통해 이것이 "클라이언트" 옵션보다 훨씬 빠르다고 말할 수 있습니다. 그런데 정확히 무엇을 하고 있는 걸까요? Xorg의 클라이언트 측 구성과 서버 측 구성의 차이점은 무엇입니까?

그리고 더 중요한 것은 창 관리자 등에서 서버측 합성을 구현하려면 어떤 Xorg 기능 세트를 사용해야 합니까?

답변1

그래서 xcompmgr 소스 코드를 살펴보면 다음과 같은 것을 발견했습니다.

  1. -s와 -c의 주요 차이점은 합성이 수행되는 방식보다는 그림자 효과 자체가 달성되는 방식인 것 같습니다. 무슨 일이 일어나고 있는지 정확히 이해하는 데 약간의 어려움이 있지만(그래픽은 내 장점이 아님) "서버 측" 그림자를 생성하는 루틴이 더 간단해 보입니다. 내 생각엔 창 크기의 투명한 회색 비트맵 같은 것을 만드는 것 같아요. 요점은 더 저렴한 루틴이라는 것입니다.

  2. 내가 원하는 기능은 "man Xcomposite"에 나열되어 있으며 X11/extensions/Xcomposite.h에서 찾을 수 있습니다. 구성 관리자(또는 구성 WM)의 경우 특히 XCompositeRedirectSubwindows() 및 XCompositeUnredirectSubwindows()가 필요합니다. (후자는 X 디스플레이를 닫기 전에 실행해야 합니다. 그렇지 않으면 세그폴트가 발생합니다.)

관련 정보