GUI开发用的多的就是QT, GTK, WxWidgets.
做一些初级到 点, 线,面的编程,比如, 游戏特效, 就可以用到鼎鼎大名的opengl及其附属库:
OpenGL support libraries(from wikipedia)
OpengGL只是定义了一组接口, 具体的实现一般由各显卡厂商提供(Nvidia, ATI,...),也因此能更好的利用硬件的性能, 所以, 我们可以看到OpenGL-compatible这样标注的显卡。 这也从一个侧面反应了opengl的底层性。仅以画点, 线, 面来说,当性能要求高时, 应当考虑opengl。 一般的桌面应用Gtk应该够了。
我注意到GNU Xaos(一个分形演示软件)用的是 libx11-dev来做图形绘制, 那么, libx11和gtk又有什么联系?
拜读了 X Window System Architecture Overview HOWTO以后, 我才明白这之间的关系: X window System(X11, Xlib)提供最底层的图形应用,Cairo构建于X System上, 而GTK又依赖于Cairo, Gtk又是Gnome的一部分.
回过头来, Cairo和OpenGl都是比Gtk+更低层次的抽象, 但他们是同一层次的抽象吗?Opengl和X window system 谁更底层?
这里说:
"In the X Window System, OpenGL rendering is made available as an
extension to X in the formal X sense: connection and authentication are
accomplished with the normal X mechanisms"
也就是说, X system可以通过opengl来构建。 果然, Xgl就是一个构建于opengl驱动上的X server (wikipedia: Xgl is an X server architecture designed to take advantage of modern graphics cards via their OpenGL drivers, layered on top of OpenGL via glitz.). 原来opengl是驱动级别的啊。但X server也有其他实现, 不一定是基于opengl的,X.Org reference implementation是最常用的X server.
这篇文章<< X11,GTK,QT,GNOME的区别与联系>> 也可以参考一下.
附:
GNOME/KDE是一个桌面环境, 集成了这么一些组件(wikipedia):
做一些初级到 点, 线,面的编程,比如, 游戏特效, 就可以用到鼎鼎大名的opengl及其附属库:
OpenGL support libraries(from wikipedia)
- GLUT – The OpenGL utility toolkit.
- SDL – The Simple DirectMedia Layer.
- GLU – Some additional functions for OpenGL programs.
- GLee - The OpenGL Easy Extension library.
- GLEW – The OpenGL Extension Wrangler Library.
- GLUI - a GUI toolkit made with GLUT
- GLFW - a portable framework for OpenGL application development.
- Framebuffer Object - an off-screen rendering extension.
- GLM - C++ mathematics toolkit for OpenGL based on GLSL specification.
- SFML - Simple and Fast Multimedia Library.
- Glux - The OpenGL Utility & Auxiliary Library.
OpengGL只是定义了一组接口, 具体的实现一般由各显卡厂商提供(Nvidia, ATI,...),也因此能更好的利用硬件的性能, 所以, 我们可以看到OpenGL-compatible这样标注的显卡。 这也从一个侧面反应了opengl的底层性。仅以画点, 线, 面来说,当性能要求高时, 应当考虑opengl。 一般的桌面应用Gtk应该够了。
我注意到GNU Xaos(一个分形演示软件)用的是 libx11-dev来做图形绘制, 那么, libx11和gtk又有什么联系?
拜读了 X Window System Architecture Overview HOWTO以后, 我才明白这之间的关系: X window System(X11, Xlib)提供最底层的图形应用,Cairo构建于X System上, 而GTK又依赖于Cairo, Gtk又是Gnome的一部分.
回过头来, Cairo和OpenGl都是比Gtk+更低层次的抽象, 但他们是同一层次的抽象吗?Opengl和X window system 谁更底层?
这里说:
"In the X Window System, OpenGL rendering is made available as an
extension to X in the formal X sense: connection and authentication are
accomplished with the normal X mechanisms"
也就是说, X system可以通过opengl来构建。 果然, Xgl就是一个构建于opengl驱动上的X server (wikipedia: Xgl is an X server architecture designed to take advantage of modern graphics cards via their OpenGL drivers, layered on top of OpenGL via glitz.). 原来opengl是驱动级别的啊。但X server也有其他实现, 不一定是基于opengl的,X.Org reference implementation是最常用的X server.
这篇文章<< X11,GTK,QT,GNOME的区别与联系>> 也可以参考一下.
附:
GNOME/KDE是一个桌面环境, 集成了这么一些组件(wikipedia):
- ATK——可达性工具包
- Bonobo——复合文档技术
- GObject——用于C语言的面向对象框架
- GConf——保存应用软件设置
- GNOME VFS——虚拟档案系统
- GNOME Keyring——安全系统
- GNOME Print——GNOME软件打印文档
- GStreamer——GNOME软件的多媒体框架
- GTK+——构件工具包
- Cairo——复杂的2D图形库
- Human Interface Guidelines——Sun微系统公司提供的使得GNOME应用软件易于使用的研究和文档
- LibXML——为GNOME设计的XML库
- ORBit——使软件组件化的CORBAORB
- Pango——i18n文本排列和变换库
- Metacity——窗口管理器