LearnOpenGL 1.1 创建窗口

本文介绍如何使用GLFW库创建OpenGL上下文,并通过GLEW库获取OpenGL函数指针。详细说明了GLEW和GLFW的功能,以及它们在不同操作系统下的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文整理自LearnOpenGLLearnOpenGL CN ,后者为前者的中文版。完整学习的话建议前往原网站。

GLFW

GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口。它允许用户创建OpenGL上下文,定义窗口参数以及处理用户输入。
GLFW在不同平台下使用时需要导入的头文件并不一样。

GLEW

GLEW(OpenGL Extension Wrangler Library),用于获取OpenGL中的函数位置(指针),以便于调用该函数。

编译和链接GLEW

静态(Static)链接是指编译时就将库代码里的内容整合进你的二进制文件。优点就是你不需要管理额外的文件了,只需要发布你单独的一个二进制文件就行了。缺点就是你的可执行文件会变得更大,另外当库有升级版本时,你必须重新进行编译整个程序。
动态(Dynamic)链接是指一个库通过.dll或.so的方式存在,它的代码与你的二进制文件的代码是分离的。优点是使你的二进制文件大小变小并且更容易升级,缺点是你最终发布程序时必须带上这些DLL。

如果你希望静态链接GLEW,必须在包含GLEW头文件之前定义预处理器宏GLEW_STATIC

#define GLEW_STATIC
#include <GL/glew.h>

Linux下编译时需要使用-lGLEW -lglfw3 -lGL -lX11 -lXi -lXrandr -lXxf86vm -lXinerama -lXcursor -lrt -lm -pthread -ldl -std=c++11等参数。

### 使用C++创建窗口的示例代码与教程 对于希望学习如何使用C++创建窗口的应用开发者而言,存在多种库可以实现这一目标。其中一种流行的选择是GLFW库,它专门用于初始化OpenGL环境并管理窗口。 下面是一个简单的例子来展示如何通过GLFW创建一个基本窗口: ```cpp #include <GLFW/glfw3.h> int main(void) { GLFWwindow* window; /* 初始化GLFW库 */ if (!glfwInit()) return -1; /* 创建一个窗口化 contexts */ window = glfwCreateWindow(640, 480, "LearnOpenGL", NULL, NULL); if (!window) { glfwTerminate(); return -1; } /* 设置当前上下文为新创建的那个*/ glfwMakeContextCurrent(window); while (!glfwWindowShouldClose(window)) { /* 渲染逻辑 */ /* 缓冲交换和事件处理 */ glfwSwapBuffers(window); glfwPollEvents(); } glfwDestroyWindow(window); glfwTerminate(); } ``` 上述代码展示了创建一个简单窗口的过程[^2]。这段程序首先包含了必要的头文件`<GLFW/glfw3.h>`,接着调用了`glfwInit()`函数启动GLFW库。之后尝试创建了一个尺寸为640×480像素、标题名为"LearnOpenGL"的新窗口对象。如果成功,则进入循环等待直到用户关闭该窗口为止,在此期间执行渲染操作和其他交互逻辑。 除了GLFW之外,还有其他框架可用于构建图形界面应用程序,比如Qt或者wxWidgets等跨平台工具包;这些都提供了更丰富的组件集合和支持更为复杂的UI设计需求。 #### 注意事项 - 需要安装GLFW开发库才能编译运行上面的例子。 - 不同操作系统上可能有不同的依赖项需要解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值