Xlib和GLX

本文介绍了Linux下的GUI系统X11的工作原理及其组成部分,包括XServer、XLib、WindowManager等,并概述了X11的发展历程及其实现XFree86与X.Org服务器之间的演变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux广泛使用X Windows系统作为GUI系统。X11是1987年提出的X Windows版本。

X11基于CS模型,位图显示。Server管理硬件的输入输出,即提供显示服务,捕获用户输入。所有使用该服务的应用程序被视作Client。

X11没有规范Client的视窗样式,这些由用户软件自己定义。


Linux <----> X Server <----> XLib <----> X Application


Xfree和Xorg实现了X Server。XLib为Client提供了与Server通信的通用接口

X Application: GTK+ <----> Gnome

X Application: QT <----> KDE

X Application: X APP


Gnome和KDE实现了Window Manager。

GTK+是Gnome的默认图形库,基于XLib;

QT是KDE的默认图形库,基于XLib;

wxWidgets图形库;

Swing/AWT是Java使用的图形库;

MFC是windows的图形库;


XFree86是 X Window系统的一个实现。自1992年至2004年,它一直循著自由发放的开放源代码模式发展,成为X Window系统最被广泛使用的基建平台。2004年,XFree86的开发因软件许可证出现分岐,而衍生出另一个发展自XFree86 4.4 RC2 版本源代码,名叫X.Org 服务器的XWindow系统。XFree86不再以GPL软件许可证的形式出现,而是使用XFree86®Project 公司所拥有的XFree86 License version 1.1软件许可证模式发放。现时 XFree86仍由 XFree86®Project公司负责开发,该公司的主要负责人是 DavidDawes。

Xorg服务器的第一个版本X11R6.7.0,从XFree86 4.4 RC2派生出来。大部分的XFree86开发者也由于不满许可的更改转而从事X.org这个比XFree86更开放的项目。XOrg服务器逐渐在开源Unix风格操作系统中流行。它被以下发行版本采用以代替XFree86:Gentoo Linux, Fedora Core, Slackware, SUSE, Mandrake Linux, Cygwin/X, Debian GNU/Linux, Ubuntu Linux, OpenBSD 和 FreeBSD 5.x。


启动X server:startx

关闭X server:sudo /etc/init.d/lightdm stop


Xlib常用编程路线图

1. 连接X Server: Display = XOpenDisplay()

2. 创建窗口:win = XCreateSimpleWindow(Display, ...)

3. 显示窗口:XMapWindow(win)

4. 事件循环。



Xlib是一个用于处理X窗口系统的库,而OpenGL是一个用于渲染3D图形的库。Xlib库提供了与X服务器通信的功能,包括创建管理窗口、处理输入事件等。OpenGL库则提供了一组函数数据类型,用于在图形硬件上进行高性能的图形渲染。这两个库可以结合使用,通过在Xlib上建立GLX扩展,实现在X窗口系统上使用OpenGL进行图形渲染。 在Linux中进行OpenGL编程时,我们需要包含一些头文件。在代码中我们可以包含stdio.hstdlib.h,因为我们可能会使用printf()exit()函数。而X11/X.hGL/gl.h在代码中不一定需要包含,因为它们会被X11/Xlib.hGL/glx.h自动包含。不过为了代码的完整性,我们可以明确地包含它们。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Programming OpenGL in Linux: GLX and Xlib](https://blog.youkuaiyun.com/xiaoyafang123/article/details/121381484)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [OpenGL for x window (1)](https://download.youkuaiyun.com/download/luqq123/4252369)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值