c - GTK+ 和 OpenGL

标签 c user-interface opengl gtk

什么是 GTK+?它与 OpenGL 有什么关系?我可以用 C 语言使用 OpenGL 创建 GUI 界面吗?我进行过研究,人们说要使用 GTK+,但我根本不知道它是什么。

最佳答案

有人想知道你是如何进行“研究”的。

转到official GTK+ website并开始阅读,然后转到相应的official OpenGL website并在那里做同样的事情。

GTK+是一个界面工具包,它使用绘图后端(GDK+Cairo)来渲染用户界面元素,然后管理这些元素,处理用户输入事件,重绘等等。

OpenGL 是一种用于对图形硬件(通常用于 3D 图形)进行编程的 API。它的范围比 GTK+ 更严格(也更底层),并且(理论上)可以用来实现 GTK+ 后端。

为了说明两个 API 之间“级别”的差异:

  • GTK+ 将可滚动、可编辑、多字体且完全符合国际语言的 TextView 视为一个“事物”,您可以通过其 API(强大的 GtkTextView 小部件)来使用它。
  • OpenGL 考虑使用单个调用绘制一组三角形,该调用又依赖于先前指定了三角形角点坐标、颜色数据、纹理坐标等的调用,这是一个较高级别的调用(请参阅glDrawElements())。

关于c - GTK+ 和 OpenGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14152836/

相关文章:

c - 将 sprintf 的十六进制输出保存到 C 中的文件中

c++ - scanf/sscanf 可以处理转义字符吗?

jquery - Kendo网格detailInit访问父网格

android - 如何在 Android 2.3 (Gingerbread) 中获得 iPhone 风格的过度滚动?

java - 如何将元素映射到 OpenGL VBO 中的颜色?

c++ - 纹理绑定(bind) : OpenGL + OpenCV

C 字节 - 无法输出 char(仅 8 位)

c - 在 O(n) 中删除字符串中的空格

c++ - MFC - 停用除一个按钮以外的所有按钮

java - LWJGL 无法使用 OpenGL 3.2 或更高版本