안녕하세요~
tiny-x 와 window manager에 대해 여쭤볼 게 있습니다.
2443 보드에 tiny-x와 gtk를 포팅하였습니다.
포팅한 순서와 목록은 다음과 같습니다.
tiny-x 4.2
tslib
xproto-core
x11proto-xext
xtrans
x11proto-xcmisc
x11proto-bigreqs
x11proto-kb
x11proto-input
x11proto-xf86bigfont
libiconv
glib 2.15.4
atk
freetype
libxml2
fontconfig
libpng
render
libXrender
libXft
jpeg
cairo
pango
xextensions
damageext
compositeext
randrext
libXau
fixesext
libXfixes
libXdamage
libXcomposite
libXrandr
libXcursor
libXinerama
gtk 2.12.6
gtk를 포팅하기 전 xfbdev , xclock 이 잘 돌아가는 것을 확인하였습니다.
그리고 gtk를 포팅한 뒤, gtk 어플이 잘 돌아가는 것도 확인하였습니다.
그런데, gtk 어플에서 제가 쓸려는 함수가 gtk_window_set_opacity 라는 함수로
gtk2.12 에 새로 추가된 윈도우를 투명하게 만드는 함수입니다.
이 함수가 동작을 하지 않는 것입니다! 컴파일은 워닝하나 없이 잘 됩니다.
라이브러리들의 똑같은 버전으로 directFB 1.1.1 + gtk 2.12.6 에서는 이 함수가 매우 잘 동작하였습니다.
그런데 gtk를 더욱 완벽하게 지원할 것이라 생각했던 X 에서는 잘 동작하지 않으니 약간 당황스럽더군요ㅠ
window manager를 따로 포팅하지 않아서 저 위의 함수가 동작하지 않은 것일까요;;
만약 그런 가능성이 있다면 어떤 window manager를 포팅하면 될까요~ 그리고 저 위의 목록에서 어떤 순서에서 포팅하는 것이 합리적인 걸까요?;
일단 metacity 를 받아놓기는 하였으나, 포팅된 자료나 문서 같은 것들이 전혀 보이지 않아
손대기가 어렵네요~
사실 window manager가 없음으로 인해 생기는 현상일 가능성은 적다고 보고 있습니다.
gtk reference menual에서 gtk_window_set_opacity 를 찾아보니
이 함수는 compositing manager 가 동작하는 X window 상에서만 동작한다고 합니다.
제가 위의 라이브러리 중 관련된 compositeext , libXcomposite , damage , libXdamage 등등을
포팅하였지만 제대로 동작하는지 포팅이 잘못 되었는지 알 길이 없습니다.
composite 등이 동작하게 하려면 어떻게 하면 될까요ㅠㅠ
답변 부탁드릴게요~
좋은 하루 되세요!
제가 알기로도 Xorg 6.8인가 이후에야 구현이 되기 시작하엿을겁니다.
tiny-x면 보통 Xfree86-4.2 버전일텐데, 거기는 없는 라이브러리도 많고, 동작하다가 죽는 경우도 발생할겁니다.