`
jinghuainfo
  • 浏览: 1526641 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

X Window研究笔记(13)

 
阅读更多
X Window研究笔记(13)

转载时请注明出处和作者联系方式
作者联系方式:李先静 <xianjimli at hotmail dot com>

13.X Window扩展机制--客户端勾子函数

扩展模块是X Window的主要扩展方式,前面我们介绍它在X Server中的实现。其实在客户端,X Window也为扩展模块扩展提供了方便,以此可以hook一些重要的功能,很多扩展模块都利用了这种机制。hook接口如下:

typedefstruct_XExtensionHooks...{
int(*create_gc)(
Display
*/**//*display*/,
GC
/**//*gc*/,
XExtCodes
*/**//*codes*/
);
int(*copy_gc)(
Display
*/**//*display*/,
GC
/**//*gc*/,
XExtCodes
*/**//*codes*/
);
int(*flush_gc)(
Display
*/**//*display*/,
GC
/**//*gc*/,
XExtCodes
*/**//*codes*/
);
int(*free_gc)(
Display
*/**//*display*/,
GC
/**//*gc*/,
XExtCodes
*/**//*codes*/
);
int(*create_font)(
Display
*/**//*display*/,
XFontStruct
*/**//*fs*/,
XExtCodes
*/**//*codes*/
);
int(*free_font)(
Display
*/**//*display*/,
XFontStruct
*/**//*fs*/,
XExtCodes
*/**//*codes*/
);
int(*close_display)(
Display
*/**//*display*/,
XExtCodes
*/**//*codes*/
);
Bool(
*wire_to_event)(
Display
*/**//*display*/,
XEvent
*/**//*re*/,
xEvent
*/**//*event*/
);
Status(
*event_to_wire)(
Display
*/**//*display*/,
XEvent
*/**//*re*/,
xEvent
*/**//*event*/
);
int(*error)(
Display
*/**//*display*/,
xError
*/**//*err*/,
XExtCodes
*/**//*codes*/,
int*/**//*ret_code*/
);
char*(*error_string)(
Display
*/**//*display*/,
int/**//*code*/,
XExtCodes
*/**//*codes*/,
char*/**//*buffer*/,
int/**//*nbytes*/
);
}
XExtensionHooks;


在上面这些函数中,close_display(关闭DISPLAY时被调用),wire_to_event(发现事件时被调用)和 event_to_wire(发出事件时被调用)三个函数使用最为频繁。

示例可以参考lib/Xext中的代码。

(待续)
分享到:
评论

相关推荐

    X Window研究笔记

    X Window研究笔记 虽然X Window是一个非常复杂的系统,但只要静下心来分析,通常遇到的问题也是很容易解决的,前年我花了一段时间去研究X Window的实现,我发现了解它的实现后,很多问题都迎刃而解了

    X-window简略笔记

    X-window简略笔记

    X-Window程式设计入门 教程

    X Window 程式设计入门--第一章 什么是 X Window X Window 程式设计入门--第二章 X Programming 的第一步 X Window 程式设计入门--第三章 绘图(Graphic) X Window 程式设计入门--第三章 绘图(Graphic) X Window 程...

    Xwindow程序设计入门

    Xwindow程序设计入门,网上收藏,很好的资料,对了解xwindow编程很有帮助

    X Window 系统使用指南

    X Window System 是一套在各种位元映像显示器 (bitmapped dispalys) 上具有极大可携性 (portable) 的视窗系统 (window system), 它是由麻省理工学院 (MIT)所发展出来. X Windows System ( 本书以後部 份简称为...

    OpenGL for x window (1)

    This practical guide shows X programmers how to construct working 3D applications using OpenGL and how to tightly integrate OpenGL applications with the X Window System. Written by a Silicon Graphics...

    X window 直接渲染架构

    描述X window 直接渲染架构的概念,实现

    X window介绍及启动流程

    对Linux操作系统的桌面环境软件X window的介绍及启动流程

    Linux与X Window系统基础

    Linux与X Window系统基础 Linux与X Window系统基础

    xwindow程序设计相关资料

    X Window System 是一套在各种位元映像显示器 (bitmapped dispalys) 上具有极大可携性 (portable) 的视窗系统 (window system), 它是由麻省理工学院 (MIT)所发展出来. X Windows System ( 本书以後部 份简称为...

    X Window 用户指南

    这个文档为Linux用户提供了一些基本的关于理解和配置X-Window系统的信息。 这只是一个入门级别的文档。假设已经有了一个安装好的并且正在工作的 X-Window系统。

    Linux下X-Window系统程序设计简介.pdf

    Linux下X-Window系统程序设计简介.pdf

    window manager for x

    window manager for x window manager for x window manager for x

    X-Window介绍

    关于X window的介绍。让你了解并熟悉X window。

    xwindow相关包

    Xwindow 是一个非常出色的图形系统,你应该抱怨的是那些不稳定的包装,而不是 Xwindow 本身。

    Xming-X window 工具

    Xming, windows操作系统连接Linux, Unix的x window 工具。

    Unix_Linux环境下的窗口系统X Window(上).pdf

    Unix_Linux环境下的窗口系统X Window(上).pdf

    X Window架构与启动代码分析

    一份课程报告,介绍了X-Window的架构体系,并对启动代码做了分析

Global site tag (gtag.js) - Google Analytics