2014-05-13 1 views
0

내 컴퓨터의 영상 깊이 값은 24입니다. 더 낮은 깊이의 X 창 (예 : 16)을 만들 수 있습니까? 예인 경우 어떻게합니까? 샘플 코드에 대한 포인터가 유용 할 것입니다.VisualInfo보다 작은 깊이의 창 만들기

XSetWindowAttributes attrs; 

attrs.colormap = XCreateColormap(dpy, XDefaultRootWindow(dpy), visual, AllocNone); 
attrs.background_pixel = 0; 
attrs.border_pixel = 0; 

XCreateWindow(dpy, parent, 10, 10, 150, 100, 0, 16, InputOutput, 
       visual, CWBackPixel | CWColormap | CWBorderPixel, &attrs); 

위의 코드를 입력하면 오류가 발생합니다. 시각적 매개 변수는 24 비트 깊이입니다.

미리 감사드립니다.

답변

1

모든 서버에서 가능한 모든 깊이를 사용할 수있는 것은 아닙니다. xdpyinfo | grep depths을 실행하여 귀하의 지원 내용을 확인하거나 신청서에서 XListDepths으로 전화하십시오.

예를 들어, 가정용 컴퓨터에서 X 서버는 깊이 16을 지원하지만 내 작업 컴퓨터에서는 지원하지 않습니다.

EDIT 창 깊이가 시각 깊이와 정확히 일치해야하며 그렇지 않으면 BadMatch 오류가 발생합니다.

XListDepths은 어떤 영상이 주어진 깊이를 지원하는지 쿼리하는 데 사용할 수 있습니다. 모든 비주얼의 깊이가 24이면 모든 윈도우의 깊이가 24 여야합니다. 나열된 모든 깊이가 특정 서버에서 비주얼로 구현되는 것은 아닙니다.

+0

동의합니다. 내 컴퓨터에서만 24 비트 깊이 지원을 볼 수 있습니다. 그렇다면 "최대 깊이"의 의미는 정확히 무엇입니까? 내가 읽은 것부터 XCreateWindow()의 깊이 값은 최대 깊이보다 작을 수 있습니다. – maverick9888

+0

"XCreateWindow()의 깊이 값이 최대 깊이보다 작을 수 있습니다"- 서버에서 지원하는 깊이 목록에있는 경우에만 해당합니다. 내 작업 서버는 24, 32, 8, 4, 1의 깊이를 지원합니다. 깊이 8 또는 24의 창을 만들 수 있지만 16은 만들 수 없습니다. –

+0

약간의 혼란이 있습니다. 출력 말하는 'xdpyinfo'- 화면 # 0 : 깊이 (7) : 24, 1, 4, 8, 15, 16, 32 그러나 모든 영상은이 - 깊이 : 24 개면 을 여전히 가능 16 비트 깊이의 'VISUAL'이 없더라도 최대 깊이보다 작은 깊이의 창을 만들 수 있습니까? – maverick9888