我机器上的视觉效果的深度值是24.是否可以创建较低深度的X窗口(例如16)? 如果有,怎么样?任何指向示例代码的指针都很有用。
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位深度。
提前致谢。
答案 0 :(得分:1)
并非所有服务器都提供所有可能的深度。运行xdpyinfo | grep depths
查看您的支持,或者从您的应用程序中调用XListDepths
。
例如,在我的家用计算机上,X服务器支持16的深度,但在我的工作计算机上它并没有。
编辑窗口深度必须与视觉深度完全匹配,否则会发生BadMatch错误。
XListDepths
可用于查询哪些视觉效果支持给定深度。如果所有视觉效果的深度均为24,则每个窗口的深度必须为24.并非所有列出的深度都可以作为给定服务器上的视觉效果实现。