C XDefaultDepth和XDisplayPlanes–;什么';有什么区别?
对于C XDefaultDepth和XDisplayPlanes–;什么';有什么区别?,c,xlib,C,Xlib,对于XDefaultDepth,Xlib文档说明: 返回对象的默认根窗口的深度(平面数) 指定屏幕。此屏幕上还支持其他深度 对于XDisplayPlanes,它说: 返回指定屏幕的根窗口的深度 因此,基本上,两者都返回桌面的深度(根窗口)。 两者的参数数量和类型也相同。这令人困惑:/ 那么,这两者有什么区别呢? 因为从这个描述来看,它们似乎完全相同:q虽然它们在实现上可能相同(请参见grep root_depth/usr/include/X11/Xlib.h),但“深度”和“平面”之间存在语义差
XDefaultDepth
,Xlib文档说明:
返回对象的默认根窗口的深度(平面数)
指定屏幕。此屏幕上还支持其他深度 对于
XDisplayPlanes
,它说:
返回指定屏幕的根窗口的深度
因此,基本上,两者都返回桌面的深度(根窗口)。两者的参数数量和类型也相同。这令人困惑:/
那么,这两者有什么区别呢?
因为从这个描述来看,它们似乎完全相同:q虽然它们在实现上可能相同(请参见
grep root_depth/usr/include/X11/Xlib.h
),但“深度”和“平面”之间存在语义差异
- 窗口或pixmap的深度是它所包含的每个像素的位数 有图形上下文的深度是其可绘制内容的深度 可与graphicsoutput结合使用
- 当pixmap或窗口被认为是[1位]位图的堆栈时,每个 位图称为平面或位平面
XCopyPlane
,可以在单个计算机上运行
飞机如果我在使用平面,并且想知道我必须使用多少个平面,那么调用
XDisplayPlanes()
比调用XDefaultDepth()
更有趣的阅读:它们以相同的方式实现的事实并不意味着它们总是以这种方式实现。当使用API时,我们不应该依赖于它的当前实现,因为这可能会改变。重要的是这些接口的语义,这就是我要问的(为什么有两个不同的函数,它们在使用上的区别是什么)。不过,谢谢你给我的链接。很高兴能够在引擎盖下看到它是如何工作的;)隐马尔可夫模型。。。“深度”和“飞机数量”之间的区别我还不清楚。因为在文档中的许多地方,它们似乎可以互换使用,好像“深度”应该特别指“平面数”。但感谢您提供的文档,它们似乎比文档更具信息性,并为我遇到问题的API的其他一些方面(例如视觉效果)提供了一些启示。如果我弄错了,请纠正我的错误,但以下是我从您提供的材料中收集的信息:“深度”只涉及实际像素的位平面数,但实际的平面数量可能会超过这个数量,以考虑一些额外的平面,比如覆盖层、后备存储等等?我想像素深度和平面数量可能会有所不同,而这将通过提供不同的接口来实现。但实际上,他们只是用不同的方式来看待相同的数据。我同意你关于语义学的评论,我将更新我的答案。