索引
3.索引
自定义协议类型
typedef uint32_t xcb_randr_crtc_t
typedef uint32_t xcb_randr_mode_t
typedef uint32_t xcb_randr_output_t
enum xcb_randr_rotation_t {
XCB_RANDR_ROTATION_ROTATE_0 = 1, XCB_RANDR_ROTATION_ROTATE_90 = 2,
XCB_RANDR_ROTATION_ROTATE_180 = 4, XCB_RANDR_ROTATION_ROTATE_270 = 8,
XCB_RANDR_ROTATION_REFLECT_X = 16, XCB_RANDR_ROTATION_REFLECT_Y = 32
}
typedef enum xcb_randr_rotation_t xcb_randr_rotation_t
enum xcb_randr_transform_t {
XCB_RANDR_TRANSFORM_UNIT = 1, XCB_RANDR_TRANSFORM_SCALE_UP = 2,
XCB_RANDR_TRANSFORM_SCALE_DOWN = 4, XCB_RANDR_TRANSFORM_PROJECTIVE = 8
}
typedef enum xcb_randr_transform_t xcb_randr_transform_t
函数
获取版本信息
xcb_randr_query_version_cookie_t
xcb_randr_query_version (xcb_connection_t * c,
uint32_t major_version,
uint32_t minor_version
)
xcb_randr_query_version_reply_t*
xcb_randr_query_version_reply (xcb_connection_t * c,
xcb_randr_query_version_cookie_t cookie,
xcb_generic_error_t ** e
)
该函数功能为获取xorg randr扩展版本信息
获取当前屏幕资源信息
xcb_randr_get_screen_resources_current_cookie_t
xcb_randr_get_screen_resources_current (xcb_connection_t * c,
xcb_window_t window
)
xcb_randr_get_screen_resources_current_reply_t*
xcb_randr_get_screen_resources_current_reply (xcb_connection_t * c,
xcb_randr_get_screen_resources_current_cookie_t cookie,
xcb_generic_error_t ** e
)
该函数返回已连接到与“窗口”关联屏幕的output和CRTC的列表。与xcb_randr_get_screen_resources
不同,它只返回当前配置,不轮询硬件更改。
返回值xcb_randr_get_screen_resources_current_reply_t
是一个包含了屏幕资源信息的结构体,如下:response_type
:响应事件类型sequence
: 响应事件序列号length
:响应事件长度timestamp
:上次设置配置的时间config timestamp
:配置信息最后一次更新的时间num_crtcs
:与屏幕关联的CRTC数量 num_outputs
:与屏幕相关的output数量 num_modes
:与屏幕相关的mode数量
xcb_randr_get_screen_resources_cookie_t
xcb_randr_get_screen_resources (xcb_connection_t * c,
xcb_window_t window
)
xcb_randr_get_screen_resources_reply_t*
xcb_randr_get_screen_resources_reply (xcb_connection_t * c,
xcb_randr_get_screen_resources_cookie_t cookie,
xcb_generic_error_t ** e
)
该函数与xcb_randr_get_screen_resources_current_reply
类似,区别是该函数会返回所有屏幕资源
uint8_t *
xcb_randr_get_screen_resources_names (const xcb_randr_get_screen_resources_reply_t *R)
int
xcb_randr_get_screen_resources_names_length (const xcb_randr_get_screen_resources_reply_t *R)
xcb_generic_iterator_t
xcb_randr_get_screen_resources_names_end (const xcb_randr_get_screen_resources_reply_t *R)
该组函数功能为获取屏幕资源名称,长度及遍历迭代器
获取CRTC信息
xcb_randr_crtc_t *
xcb_randr_get_screen_resources_current_crtcs (const xcb_randr_get_screen_resources_current_reply_t *R)
int
xcb_randr_get_screen_resources_current_crtcs_length (const xcb_randr_get_screen_resources_current_reply_t *R)
xcb_generic_iterator_t
xcb_randr_get_screen_resources_current_crtcs_end (const xcb_randr_get_screen_resources_current_reply_t *R)
xcb_randr_crtc_t *
xcb_randr_get_screen_resources_crtcs (const xcb_randr_get_screen_resources_reply_t *R)
int
xcb_randr_get_screen_resources_crtcs_length (const xcb_randr_get_screen_resources_reply_t *R)
xcb_generic_iterator_t
xcb_randr_get_screen_resources_crtcs_end (const xcb_randr_get_screen_resources_reply_t *R)
xcb_randr_get_crtc_info_cookie_t
xcb_randr_get_crtc_info (xcb_connection_t *c,
xcb_randr_crtc_t crtc,
xcb_timestamp_t config_timestamp);
xcb_randr_get_crtc_info_reply_t *
xcb_randr_get_crtc_info_reply (xcb_connection_t *c,
xcb_randr_get_crtc_info_cookie_t cookie /**< */,
xcb_generic_error_t **e);
该组函数功能是获取CRTC编号及相关信息。
参数xcb_randr_get_screen_resources_current_reply_t
及xcb_randr_get_screen_resources_reply_t
是获取屏幕资源函数返回值
参数c
:表示客户端与服务器的连接
参数crtc
:指定要获取信息的crtc编号
参数config_timestamp
:配置时间戳
xcb_randr_get_panning_cookie_t
xcb_randr_get_panning (xcb_connection_t * c,
xcb_randr_crtc_t crtc
)
xcb_randr_get_panning_reply_t*
xcb_randr_get_panning_reply (xcb_connection_t * c,
xcb_randr_get_panning_cookie_t cookie,
xcb_generic_error_t ** e
)
版本1.3增加了平移支持。如果多个CRTC激活可以根据crtc单独定义平移行为。
xcb_randr_get_panning
返回有关当前设置的平移的信息指定crtc的配置。如果CRTC不支持
平移时,所有字段(时间戳除外)都将为0。
xcb_randr_get_crtc_transform_cookie_t
xcb_randr_get_crtc_transform (xcb_connection_t * c,
xcb_randr_crtc_t crtc
)
xcb_randr_get_crtc_transform_reply_t*
xcb_randr_get_crtc_transform_reply ( xcb_connection_t * c,
xcb_randr_get_crtc_transform_cookie_t cookie,
xcb_generic_error_t ** e
)
该函数返回指定CRTC的挂起转换和当前转换。
获取output信息
xcb_randr_output_t *
xcb_randr_get_screen_resources_outputs (const xcb_randr_get_screen_resources_reply_t *R)
int
xcb_randr_get_screen_resources_outputs_length (const xcb_randr_get_screen_resources_reply_t *R)
xcb_generic_iterator_t
xcb_randr_get_screen_resources_outputs_end (const xcb_randr_get_screen_resources_reply_t *R)
该组函数功能分别为获取outputs引用,长度及迭代器
xcb_randr_output_t *
xcb_randr_get_screen_resources_current_outputs (const xcb_randr_get_screen_resources_current_reply_t *R)
int
xcb_randr_get_screen_resources_current_outputs_length (const xcb_randr_get_screen_resources_current_reply_t *R)
xcb_generic_iterator_t
xcb_randr_get_screen_resources_current_outputs_end (const xcb_randr_get_screen_resources_current_reply_t *R)
该组函数功能分别为获取当前outputs引用,长度及迭代器
xcb_randr_get_output_info_cookie_t
xcb_randr_get_output_info (xcb_connection_t *c,
xcb_randr_output_t output,
xcb_timestamp_t config_timestamp);
xcb_randr_get_output_info_reply (xcb_connection_t *c,
xcb_randr_get_output_info_cookie_t cookie /**< */,
xcb_generic_error_t **e);
该函数功能是获取指定output信息。
参数output
:指定要获取的output编号。
xcb_randr_query_output_property_cookie_t
xcb_randr_query_output_property (xcb_connection_t * c,
xcb_randr_output_t output,
xcb_atom_t property
)
xcb_randr_query_output_property_reply_t*
xcb_randr_query_output_property_reply (xcb_connection_t * c,
xcb_randr_query_output_property_cookie_t cookie,
xcb_generic_error_t ** e
)
该组函数功能为获取output属性信息。
xcb_atom_t *
xcb_randr_list_output_properties_atoms (const xcb_randr_list_output_properties_reply_t *R)
int
xcb_randr_list_output_properties_atoms_length (const xcb_randr_list_output_properties_reply_t *R)
xcb_generic_iterator_t
xcb_randr_list_output_properties_atoms_end (const xcb_randr_list_output_properties_reply_t *R)
该组函数功能为获取output属性atoms,atoms长度及遍历迭代器
uint8_t *
xcb_randr_get_output_info_name (const xcb_randr_get_output_info_reply_t *R)
int
xcb_randr_get_output_info_name_length (const xcb_randr_get_output_info_reply_t *R)
xcb_generic_iterator_t
xcb_randr_get_output_info_name_end (const xcb_randr_get_output_info_reply_t *R)
该组函数功能为获取output信息名称,长度及遍历迭代器
获取模式信息
xcb_randr_mode_info_t*
xcb_randr_get_screen_resources_modes (const xcb_randr_get_screen_resources_reply_t *R)
int
xcb_randr_get_screen_resources_modes_length (const
xcb_randr_get_screen_resources_reply_t *R)
xcb_randr_mode_info_iterator_t
xcb_randr_get_screen_resources_modes_iterator (const xcb_randr_get_screen_resources_reply_t *R)
该组函数功能为分别获取所有屏幕资源模式信息,模式个数及迭代器
xcb_randr_mode_info_t *
xcb_randr_get_screen_resources_current_modes (const xcb_randr_get_screen_resources_current_reply_t *R)
int
xcb_randr_get_screen_resources_current_modes_length (const xcb_randr_get_screen_resources_current_reply_t *R)
xcb_randr_mode_info_iterator_t xcb_randr_get_screen_resources_current_modes_iterator (const xcb_randr_get_screen_resources_current_reply_t *R)
该组函数功能为分别获取当前屏幕资源模式信息,模式个数及迭代器
设置屏幕大小
cb_void_cookie_t
xcb_randr_set_screen_size (xcb_connection_t * c,
xcb_window_t window,
uint16_t width,
uint16_t height,
uint32_t mm_width,
uint32_t mm_height
)
该函数功能为将屏幕设置为指定大小。
参数window
:屏幕的根窗口root。
参数width
和height
:在GetScreenSizeRanges允许的范围内的值,否则会获取一个错误结果。
参数mm_width
和mm_height
:反映屏幕的物理大小,通过此扩展和核心协议。它们必须是非零值,否则会获取错误结果。
如果启用平移,则平移的宽度和高度以及跟踪区域适应新的尺寸,然后夹紧。禁用的平移轴保持禁用状态。如果不再满足平移边界的要求,则禁用平移边界。
设置CRTC配置
xcb_randr_set_crtc_config_cookie_t
xcb_randr_set_crtc_config (xcb_connection_t *c,
xcb_randr_crtc_t crtc,
xcb_timestamp_t timestamp,
xcb_timestamp_t config_timestamp,
int16_t x,
int16_t y,
xcb_randr_mode_t mode,
uint16_t rotation,
uint32_t outputs_len,
const xcb_randr_output_t *outputs);
xcb_randr_set_crtc_config_reply_t *
xcb_randr_set_crtc_config_reply (xcb_connection_t *c,
xcb_randr_set_crtc_config_cookie_t cookie /**< */,
xcb_generic_error_t **e);
该函数功能是将修改配置项应用到crtc。
参数c
:表示客户端与服务器的连接
参数crtc
:指定要获取信息的crtc编号
参数timestamp
:时间戳
参数config_timestamp
:配置时间戳
参数x
:指定屏幕中位置的x坐标
参数y
:指定屏幕中位置的y坐标
参数mode
:指定设置模式
参数rotation
:对应自定义的协议类型ROTATION,规定旋转角度值
参数outputs_len
:指定output输出设备的个数
参数outputs
:指定output输出设备的结构体指针
xcb_randr_set_panning_cookie_t
xcb_randr_set_panning (xcb_connection_t * c,
xcb_randr_crtc_t crtc,
xcb_timestamp_t timestamp,
uint16_t left,
uint16_t top,
uint16_t width,
uint16_t height,
uint16_t track_left,
uint16_t track_top,
uint16_t track_width,
uint16_t track_height,
int16_t border_left,
int16_t border_top,
int16_t border_right,
int16_t border_bottom
)
xcb_randr_set_panning_reply_t*
xcb_randr_set_panning_reply (xcb_connection_t *c,
xcb_randr_set_panning_cookie_t cookie,
xcb_generic_error_t ** e
)
该函数功能为设置平移参数信息。
设置primary output
xcb_void_cookie_t
xcb_randr_set_output_primary (xcb_connection_t * c,
xcb_window_t window,
xcb_randr_output_t output
)
该函数将“output”标记为与“window”具有相同根窗口的屏幕。
参数window
:指定window窗口id
参数output
:指定primary output