2014-12-18 8 views
0

석양

블렌딩.32 비트를 XImage, XPutImage 알파 I은 32 비트 픽셀 당 창 및도 32를 XImage BPP의 객체를 생성하고, Xlib를 사용

처음에는 배경을 지우려면 창에 불투명 한 사각형을 그립니다.

그런 다음 창에 반투명의 XImage를 그려 봅니다.

다른 모든 기능이 알파 채널과 잘 작동하지 않기 때문에 이러한 작업에서 그래픽 컨텍스트의 GXCopy 기능 만 사용할 수 있습니다.

그러나 XImage를 그리면 배경과 섞이지 않고 단순히이 방법으로 대체 (GXCopy)하여 창에 투명한 구멍을 만듭니다.

질문

X 서버가 제대로 반투명 이미지를 혼합 할 수 있도록하는 방법이 있나요? (GXBlend라는 일부 함수 일 수 있음)

P.S. XRender 확장을 알고 있지만 가능한 경우 XLib를 사용하는 것을 선호합니다.

답변

1

XRender가 도입 된 이유입니다. 또 다른 옵션은 GLX입니다. 또 다른 옵션 (느림) : 이전 컨텐츠를 클라이언트로 전송하고, 클라이언트 코드를 혼합하고, 픽스맵을 다시 서버에 넣습니다.

+0

흠하지만 투명 창이 필요하지 않습니다. 내 창에는 투명 이미지 만 있으면됩니다. 그런 다음 클라이언트 측에서 전체 윈도우 내용을 그리고 XPutImage 만 서버로 그릴 수 있습니다. 이것도 느릴 것이라고 생각하십니까? – johnfound

+0

서버 쪽 합성에 대해 질문했습니다. 그 대답은 "core x11이 아닙니다"입니다. 예, 클라이언트 쪽에서 할 수 있고 XPutImage 결과는 –

+0

입니다. 실제로 서버 쪽 합성에 대해 물어 보았습니다. 코멘트는 단지 코멘트 일뿐입니다 ...;) – johnfound