Xlib编程中的资源关联与图形概念详解
1. 资源关联函数
在Xlib编程中,有时需要将任意信息与资源ID关联起来。虽然一些函数已被上下文管理函数取代,但Xlib提供了XAssocTable函数来实现这种关联。应用程序在事件发生时,常常需要方便地引用自己的数据结构,XAssocTable系统为X库的用户提供了一种将自己的数据结构与X资源(如Pixmaps、Fonts、Windows等)关联的方法。
1.1 XAssocTable使用准则
- 所有XID都与指定的显示相关。
- 由于关联机制使用了哈希方案,确定
XAssocTable大小时应遵循以下规则:如果表的大小(哈希系统中的桶数)是2的幂,并且每个桶中的XID不超过8个,那么关联和查找操作会更高效。
1.2 创建XAssocTable
要返回一个指向新XAssocTable的指针,可以使用XCreateAssocTable函数:
XAssocTable *XCreateAssocTable(size);参数size指定了XAssocTable哈希系统中的桶数。为了提高效率,桶数应该是2的幂。例如,每100个对象使用32个桶,每个桶中对象的合理最大数量是8。如果在为XAssocT