【OpenGL】OpenGL的窗口管理库
程序员文章站
2024-03-15 08:48:23
...
OpenGL 本身只管底层绘制,并不管窗口显示,用户交互等等,这就需要在其上添加一层窗口管理库,来实现 OpenGL的简易访问和友好交互。
Wikipedia : A few libraries have been designed solely to produce an OpenGL-capable window. The first such library was OpenGL Utility Toolkit (GLUT), later superseded by freeglut. GLFW is a newer alternative.
These toolkits are designed to create and manage OpenGL windows, and manage input, but little beyond that.
- GLFW – A cross-platform windowing and keyboard-mouse-joystick handler; is more game-oriented
- freeglut – A cross-platform windowing and keyboard-mouse handler; its API is a superset of the GLUT API, and it is more stable and up to date than GLUT
- OpenGL Utility Toolkit (GLUT) – An old windowing handler, no longer maintained.
glut
glut 是最早出现的,也是最早die 的,目前依然可以使用的最新的版本,是98年的。下载
很多经典的 OpenGL 作品都是使用的 glut,所以有必要了解一下。比如最简单的,输出 OpenGL 有关信息:
#include <Windows.h>
#include <stdio.h>
#include <glut.h>
int main(int argc, char** argv)
{
glutInit(&argc, argv);
//显示模式初始化
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
//定义窗口大小
glutInitWindowSize(300, 300);
//定义窗口位置
glutInitWindowPosition(100, 100);
//创建窗口
glutCreateWindow("OpenGL Version");
const GLubyte* name = glGetString(GL_VENDOR); //返回负责当前OpenGL实现厂商的名字
const GLubyte* biaoshifu = glGetString(GL_RENDERER); //返回一个渲染器标识符,通常是个硬件平台
const GLubyte* OpenGLVersion = glGetString(GL_VERSION); //返回当前OpenGL实现的版本号
//const GLubyte* Extensions =glGetString(GL_EXTENSIONS);
const GLubyte* gluVersion = gluGetString(GLU_VERSION); //返回当前GLU工具库版本
printf("OpenGL实现厂商的名字:%s\n", name);
printf("渲染器标识符:%s\n", biaoshifu);
printf("OpenGL实现的版本号:%s\n", OpenGLVersion);
//printf("OpenGL支持的扩展:%s\n",Extensions );
printf("OGLU工具库版本:%s\n", gluVersion);
getchar();
return 0;
}
glut 之后还有 freeglut
GLFW
GLFW 是当前比较好用,也比较轻量的库。
- 简介,安装,使用 看这里
- 直接去官网,可以下载到最新版本的 3.x 的 http://www.glfw.org/download.html
- 之前 2.x 版本更新到 2.7.6, 需要的这里 下载
上一篇: 对图像进行线性灰度变换halcon
下一篇: [图像处理]图像的灰度变换
推荐阅读
-
【OpenGL】OpenGL的窗口管理库
-
OpenGL入门:窗口开启、改变窗口背景颜色
-
Spring的数据库操作和事务管理
-
Spring Boot快速入门---(三)spring boot的快速连接数据库之spring data jpa以及事务管理
-
【转】Premultiplied Alpha 到底是干嘛用的 博客分类: 开发常识 图形学游戏开发opengl
-
JAVAWEB练习——后台商品管理系统,技术点提取(三层架构,数据库的内容显示到前端表格中,增删等操作)
-
java实现OpenGL ES纹理映射的方法
-
java实现OpenGL ES纹理映射的方法
-
Android基于OpenGL的GLSurfaceView创建一个Activity实现方法
-
Android基于OpenGL的GLSurfaceView创建一个Activity实现方法