XOpenGL入门教程2:版本信息

系列索引:XOpenGL入门教程索引

上一篇:XOpenGL入门教程1:空白窗口

和上一篇一样的函数处理流程图

flowchart TB
  D --> initializeEGL
  E --> mainloop
  F --> destroyEGL
  subgraph init
    direction TB
    A[XOpenDisplay] --> B[XCreateSimpleWindow]
    B --> C[XMapWindow]
    C --> D[initializeEGL]
    D --> E[mainloop]
    E --> F[destroyEGL]
    F --> G[XDestroyWindow]
    G --> H[XCloseDisplay]
  end
  subgraph initializeEGL
    direction TB
    I[eglGetDisplay] --> J[eglInitialize]
    J --> K[eglChooseConfig]
    K --> L[eglCreateContext]
    L --> M[eglCreateWindowSurface]
    M --> N[eglMakeCurrent]
  end
  subgraph mainloop
    direction TB
    O[XPending] --> P[eglSwapBuffers]
  end
  subgraph destroyEGL
    direction TB
    Q[eglDestroyContext] --> R[eglDestroySurface]
    R --> S[eglTerminate]
  end

核心

界面显示部分和之前一样,版本信息显示要在EGL初始化之后。

1
2
3
4
5
6
7
8
9
const GLubyte *name = glGetString(GL_VENDOR);           //返回负责当前OpenGL实现厂商的名字
const GLubyte *flag = glGetString(GL_RENDERER); //返回一个渲染器标识符,通常是个硬件平台
const GLubyte *OpenGLVersion = glGetString(GL_VERSION); //返回当前OpenGL实现的版本号
const GLubyte *gluVersion = gluGetString(GLU_VERSION); //返回当前GLU工具库版本

printf("OpenGL实现厂商的名字:%s\n", name);
printf("渲染器标识符:%s\n", flag);
printf("OpenGL实现的版本号:%s\n", OpenGLVersion);
printf("OGLU工具库版本:%s\n", gluVersion);

显示

编译运行,输出为

1
2
3
4
5
6
$ ./version              
OpenGL实现厂商的名字:NVIDIA Corporation
渲染器标识符:NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2
OpenGL实现的版本号:OpenGL ES 3.2 NVIDIA 515.65.01
OGLU工具库版本:1.3
X connection to :0 broken (explicit kill or server shutdown).

XOpenGL入门教程2:版本信息
https://blog.jackeylea.com/xopengl/xopengl-version/
作者
JackeyLea
发布于
2022年9月10日
许可协议