OpenGL开发环境配置
- GLFW(官网)
GLFW是一个在桌面环境下支持OpenGL、OpenGL ES、Vulkan开发的库
提供的一套简单的API支持创建窗口、context、surface及接收鼠标键盘输入
跨平台支持windows、MacOS、Linux(X11、Wayland) - glad(官网)
支持Vulkan/GL/GLES/EGL/GLX/WGL等各种图形接口在各个平台下的函数生成
(简单来说就是生成一个头文件和实现可以直接调用OpenGL之类的函数)
上面两个库的安装方式可以下载二进制或源码编译(麻烦耗时)
我这边直接用vcpkg+clion的配置方式直接用起来
-
打开CLion配置vcpkg[详情](https://blog.jetbrains.com/clion/2023/01/support-for-vcpkg-in-clion/)
-
通过vcpkg安装glfw、glad
vcpkg install glad:x64-windows glfw3:x64-windows
-
在CLion下创建一个cmake工程,通过vcpkg工具配置glfw、glad
-
修改CMakeLists.txt添加上glfw、glad的支持
-
创建一个窗口看看是否两个库都能正常跑起来
#include <glad/glad.h>
#include <GLFW/glfw3.h>
void framebufferSizeChanged(GLFWwindow *glfwWindow, int width, int height);
void processInput(GLFWwindow *glfwWindow);
int main() {
//初始化glfw
if (!glfwInit()) {
return -1;
}
//创建窗口
GLFWwindow *glfwWindow = glfwCreateWindow(640, 480, "glfw_window", NULL, NULL);
if (!glfwWindow) {
glfwTerminate();
return -1;
}
//将当前的context关联到glfwWindow
glfwMakeContextCurrent(glfwWindow);
glfwSetFramebufferSizeCallback(glfwWindow, framebufferSizeChanged);
//glad需要要在glfwMakeContextCurrent后才能初始化
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {
glfwTerminate();
return -1;
}
//消息循环
while(!glfwWindowShouldClose(glfwWindow)) {
processInput(glfwWindow);
glClear(GL_COLOR_BUFFER_BIT);
glClearColor(1.0, 1.0, 0, 1.0);
glfwSwapBuffers(glfwWindow);
glfwPollEvents();
}
glfwTerminate();
return 0;
}
void framebufferSizeChanged(GLFWwindow *glfwWindow, int width, int height) {
glViewport(0, 0, width, height);
}
void processInput(GLFWwindow *glfwWindow) {
if (glfwGetKey(glfwWindow, GLFW_KEY_ESCAPE) == GLFW_PRESS) {
glfwSetWindowShouldClose(glfwWindow, true);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律