Linux系统下的OpenGL图形程序框架

本文介绍了如何在Linux系统中使用OpenGL和X11创建图形应用程序。首先,通过建立与X服务器的连接来创建窗口,然后检测X服务器对OpenGL扩展的支持。接着,配置合适的视觉样式,创建OpenGL状态信息,并生成窗口。再将OpenGL状态信息绑定到窗口,最后将窗口映射到桌面。此外,还涉及到OpenGL的初始化和处理XEvent事件。
摘要由CSDN通过智能技术生成

            Linux系统下的OpenGL图形程序框架

        说到图形界面编程,想到的大多是Windows下的多种多样的应用程序。Linux是一个基于命令行的操作系统,在Linux下的工作大多是在命令行里完成的,而并非像Windows那样。图形界面虽然并不是Linux的一部分,我们通过一些工具,依然可以编写一些在Linux下的图形应用程序。

        OpenGL是一个工业标准的三维计算机图形软件接口,它由SGI公司发布并广泛应用于Unix、OS/2、Windows/NT等多种平台,这其中当然也包括Linux。

        X11也叫做X Window系统,X Window系统 (X11或X)是一种位图显示的 视窗系统 。它是在 Unix 和 类Unix操作系统,以及 OpenVMS 上建立图形用户界面的标准工具包和协议。Linux就是一个类Unix的操作系统。

        有了这两个工具,我们便能在Linux下进行图形界面编程了。

1.创建窗口

             由于X Window系统的协议和架构 X基于 客户端-服务器 模型,首先创建一个连接,连接到X服务器。

dpy = XOpenDisplay(NULL);
    if (dpy == NULL)
        fatalError("could not open display");


        对于X窗口系统来说,它所使用的OpenGL扩展是作为OpenGL的一个附件提供的,所以还需要检测X服务器是否是支持OpenGL扩展。

if(!glXQueryExtension(dpy, &dummy, &dummy))
        fatalError("X server has no OpenGL GLX extension");


  接下来就是给窗口找到一个合适的视觉样式。比如有些支持双缓冲,有些不支持,etc。 

vi = glXChooseVisual(dpy, DefaultScreen(dpy), dblBuf);
    if (vi == NULL)
    {
        vi = glXChooseVisual(dpy, DefaultScreen(dpy), snglBuf);
        if (vi == NULL) fatalError("no RGB visual with depth buffer");
            glf_DoubleBuffer = GL_FALSE;
    }
    if(vi->class != TrueColor)
        fatalError("TrueColor visual required for this program");


  接着创建一个OpenGL状态信息,等一下创建窗口会用到。

cx = glXCreateContext(dpy, vi, None, GL_TRUE);
    if (cx == NULL)
        fatalError("could not create rendering context");


  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值