glad 导致 glfwSwapBuffers 返回错误消息
glad causes glfwSwapBuffers to return error message
Code
#include <glad.h>
#include <glad.c>
#include <GLFW/glfw3.h>
int main()
{
glfwInit();
GLFWwindow* window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
while (!glfwWindowShouldClose(window))
{
glClear(GL_COLOR_BUFFER_BIT);
}
return 0;
}
背景信息
My Operating System 是 Windows 10 的最新版本
我使用 Visual Studio v16.6.3 (latest(
我是新手(今天刚知道 openGL(,正在尝试学习如何使用 openGL
我使用 glad 和 GLFW
问题
程序应该生成一个空白的无响应窗口
除非在运行程序时,窗口会被创建,但随后 glClear 命令返回错误"在 Project1 中0x0000000000000000引发异常.exe: 0xC0000005:访问冲突执行位置0x0000000000000000。
我尝试过的<</strong>br/>(令人惊讶地(注释掉问题代码导致程序正常运行
我已经重新安装了我的显卡驱动程序
我尝试在发电机站点上安装一堆不同的 glad 组合
我尝试过在 32 位和 64 位运行该程序(使用 cooresponse GLFW 位类型(
注释掉 #include
图像
程序属性:
.C/C++:
. .一般:https://i.stack.imgur.com/nirHo.png
.链接器:
. .一般:https://i.stack.imgur.com/zHkLT.png. .输入: https://i.stack.imgur.com/TbEiM.png
文件:
.GLFW:https://i.stack.imgur.com/DTxeX.png
.高兴:https://i.stack.imgur.com/GXNaw.png
行为是完全正确的。所以GLAD 所做的是为<glad.h>
中的每个 GL 函数Foo
都有一个#define glFoo glad_glFoo
,glad_glFoo
是指向适当类型的函数指针。一个;这些函数指针的 ll 初始化为NULL
。
因此,当您呼叫glClear(GL_COLOR_BUFFER_BIT)
时,您实际上会呼叫glad_glClear(GL_COLOR_BUFFER_BIT)
当然最终会呼叫地址 0:
"在 Project1 中0x0000000000000000引发异常.exe:0xC0000005:访问冲突执行位置0x0000000000000000。">
在调用 GLAD 函数指针之前,必须执行以下所有操作:
- 已成功调用
gladLoadGL
,同时调用线程的 GL 上下文处于活动状态, - 将相同的 GL 上下文绑定到您调用 GL 函数的线程(或兼容的线程,但这是特定于平台的(
- 确保 GL 函数实际上是由实现提供的,例如
- 通过检查特定的 GL 版本来保证该功能的存在 1.b( 在上下文创建时请求所需的特定 GL 版本,如果不满足,则进行救助
- 通过检查是否存在要求该功能可用性的 GL 扩展
- 使用 GLAD,您甚至可以检查
NULL
指针,因为 GLAD 的工作方式是,可以保证非NULL
函数指针暗示函数的存在,因为 GLAD 内部基本上是 1. 和 2. 在查询函数指针之前。请注意,对于底层 GL 扩展机制,情况并非如此。您可能会查询不受支持的函数,但实现仍可能提供非NULL
函数指针作为结果。调用该未定义的行为,则实现尚未通过 GL 版本或扩展字符串通告此函数的存在。
由于从一开始就存在于每个 GL 版本中glClear
,因此您的所有代码都缺少一个gladLoadGL
。
- C++错误消息*成员参考.**初学者*
- 如何通过参数抛出错误消息
- glad 导致 glfwSwapBuffers 返回错误消息
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 如何接受 [ENTER] 键作为无效输入并发送错误消息
- 重新定义预定义的 errno 错误消息 (E2BIG)
- SDL 映像:无法打开映像,仅显示错误消息
- 错误消息:使用"string* +="后"no match for 'operator+='"
- 错误消息"expected expression"....有人知道它为什么这么说吗?
- 在 Eclipse: "error: no match for 'operator='" 中获取错误消息
- GCC 警告和 gcc 错误消息之间的区别
- 为 c++ cin 上的输入数无效生成错误消息
- 来自带有mbedtls TLS的Mongoose Web服务器的错误消息
- 如何使用realsense摄像头调试ROS错误消息
- C++ 概念 - 需要括号中的概念会导致 2 条冲突的错误消息
- 编译器收到错误消息(textc.exe已停止)
- 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- 使用 c++/WinRT Direct3D UWP Game DR 模板 Direct X11 的错误消息
- max_element() 给出非常奇怪的错误消息
- 不断收到错误消息,并非所有控制路径都返回值