欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > OpenGL笔记二之glad加载opengl函数以及opengl-API(函数)初体验

OpenGL笔记二之glad加载opengl函数以及opengl-API(函数)初体验

2024/10/24 10:14:49 来源:https://blog.csdn.net/weixin_43297891/article/details/140388640  浏览:    关键词:OpenGL笔记二之glad加载opengl函数以及opengl-API(函数)初体验

OpenGL笔记二之glad加载opengl函数以及opengl-API(函数)初体验

bilibili赵新政老师的教程看后笔记

code review!

文章目录

  • OpenGL笔记二之glad加载opengl函数以及opengl-API(函数)初体验
    • 1.运行
    • 2.重点
    • 3.目录结构
    • 4.main.cpp
    • 5.CMakeList.txt

1.运行

在这里插入图片描述

2.重点

在这里插入图片描述

3.目录结构

01_GLFW_WINDOW/
├── CMakeLists.txt
├── glad.c
├── main.cpp
└── thirdParty├── include│   ├── glad│   │   └── glad.h│   ├── GLFW│   │   ├── glfw3.h│   │   └── glfw3native.h│   └── KHR│       └── khrplatform.h└── lib└── glfw3.lib6 directories, 8 files

4.main.cpp

#include <iostream>//注意:glad头文件必须在glfw引用之前引用
#include<glad/glad.h>
#include <GLFW/glfw3.h>/*
*┌────────────────────────────────────────────────┐
*│ 目	   标: OpenGL函数体验
*│ 讲    师: 赵新政(Carma Zhao)
*│ 拆分目标:
*│
*│ 		1	使用glad加载所有当前版本需要的opengl函数
*│ 		2	查看glad的源代码,并且理解她做了什么
*│ 		3	函数练习
*│ 			3.1	glViewport:规定视口大小
*│ 			3.2	glClearColor:设置画布清理的颜色
*│ 			3.3	glClear(GL_COLOR_BUFFER_BIT):执行画布清理操作
*│ 			3.4	glfwSwapBuffers(window):执行双缓存切换
*└────────────────────────────────────────────────┘
*///声明且实现一个响应窗体大小变化的函数
void frameBufferSizeCallBack(GLFWwindow* window, int width, int height) {
//	std::cout << "窗体最新大小:" << width << " , " << height << std::endl;glViewport(0, 0, width, height);
}//声明且实现一个键盘消息回调函数
void keyCallBack(GLFWwindow* window, int key, int scancode, int action, int mods) {if (key == GLFW_KEY_W) {//触发了w}if (action == GLFW_PRESS) {//键位按下}if (action == GLFW_RELEASE) {//键位抬起}if (mods == GLFW_MOD_CONTROL) {//按下ctrl的同时,按下了key}if (mods == GLFW_MOD_SHIFT) {//按下shift的同时,按下了key}std::cout << "按下了:" << key << std::endl;std::cout << "action:" << action << std::endl;std::cout << "mods:" << mods << std::endl;
}int main() {
//1 初始化GLFW基本环境glfwInit();//1.1 设置OpenGL主版本号、次版本号glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);//1.2 设置OpenGL启用核心模式(非立即渲染模式)glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);//2 创建窗体对象GLFWwindow* window = glfwCreateWindow(800, 600, "OpenGLStudy", NULL, NULL);//**设置当前窗体对象为OpenGL的绘制舞台glfwMakeContextCurrent(window);//设置监听,监听窗体大小变化的消息glfwSetFramebufferSizeCallback(window, frameBufferSizeCallBack);//设置监听,监听键盘消息glfwSetKeyCallback(window, keyCallBack);//*****使用glad加载所有当前版本opengl的函数if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {std::cout << "Failed to initialize GLAD" << std::endl;return -1;}//设置opengl视口以及清理颜色glViewport(0, 0, 800, 600);glClearColor(0.2f, 0.3f, 0.3f, 1.0f);//3 执行窗体循环while (!glfwWindowShouldClose(window)) {//接收并分发窗体消息//检查消息队列是否有需要处理的鼠标、键盘等消息//如果有的话就将消息批量处理,清空队列glfwPollEvents();//执行opengl画布清理操作glClear(GL_COLOR_BUFFER_BIT);//渲染操作//切换双缓存glfwSwapBuffers(window);}//4 退出程序前做相关清理glfwTerminate();return 0;
}

5.CMakeList.txt

# 指定 CMake 最低版本
cmake_minimum_required(VERSION 3.12)# 项目名称
project(OpenGL_Lecture)# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 17)# 包含头文件目录
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/thirdParty/include/usr/include
)# 包含库文件目录
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/thirdParty/lib/usr/lib/x86_64-linux-gnu
)# 设置 CMAKE_PREFIX_PATH 以找到 GLFW
set(CMAKE_PREFIX_PATH "/usr/local/lib/cmake/glfw3")
set(GLFW_DIR "/usr/local/lib/cmake/glfw3")# 查找 GLFW3 库
find_package(glfw3 REQUIRED CONFIG)# 添加可执行文件
add_executable(openglStudy "main.cpp" "glad.c")# 链接库
target_link_libraries(openglStudy glfw)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com