配置环境 vs2015 + Qt5.9
问题 - GLFW的配置
从官方下载glfw-3.2.1源代码后,通过Cmake默认配置,生成glew.sln,编译生成glfw3.lib,将其和include文件包含到Qt的pro文件中后,编译示例程序时,发生好多link错误:“error LNK2019: 无法解析的外部符号 - **”。
解决办法
在cmake时,将BUILD_SHARED_LIBS选项勾上,重新编译生成glfw3.lib和glfw3dll.dll,将其添加到Qt的pro中,可编译通过。
问题 - GLAD的包含
在pro中配置好glad路径后,添加
#include <glad/glad.h>
位置不当的话,会出现报警:
error: C1189: #error: OpenGL header already included, remove this include, glad already provides it
解决办法
包含glad时必须放在所有QOpenGL***
头文件前面。
问题 - glDrawElements()崩溃
调用函数glDrawElements()
出现错误:
Error -
RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly
解决办法
1. gl***Pointer
设置的缓冲错误,顶点索引越界引用顶点数组;
2. Buffer提早解绑,即在解绑VAO之前解绑了EBO,正确解绑顺序如下:
glBindVertexArray(0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,0);
3. VAO,VBO,EBO绑定时,和draw(or paintGL)函数调用VAO时不在同一个Context里面。此时需在绑定VAO之前调用makeCurrent()
。
(未完待续)