我刚接触学习OpenGL实际上我刚刚开始关注一个名为" learningopengl"的资源,该资源教授如何设置GLFW和GLAD以在Visual Studio 2017上使用OpenGL。但是,我已经注意到,即使只是一个非常基本的程序,只能构建一个空白窗口,可以调整大小(沿着学习材料),它需要视觉工作室一致40秒左右来实际加载程序。它一旦运行就会运行良好,只需要很长时间就可以打开。
我知道这不应该花这么长时间,因为通过我的搜索并查看人们使用这些相同的库/包括他们在那里运行的示例程序时他们立即加载的视频。
我希望我能找出原因。作为参考,我正在运行的示例代码如下所示。
#include <glad/glad.h>
#include <GLFW\glfw3.h>
#include <iostream>
void framebuffer_size_callback(GLFWwindow* window, int width, int height);
int main() {
// glfw: initialize and configure
// -----------------------------
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
// glfw window creation
// --------------------
GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL);
if (window == NULL) {
std::cout << "Failed to create GLFW window" << std::endl;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
// glad: load all openGL function pointers
// ---------------------------------------
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {
std::cout << "Failed to initialize GLAD" << std::endl;
return -1;
}
// render loop
// -----------
while (!glfwWindowShouldClose(window)) {
// glfw: swap buffers and poll IO events (keys pressed/released, mouse moved etc
// -----------------------------------------------------------------------------
glfwSwapBuffers(window);
glfwPollEvents();
}
// glfw: terminate, clearing all perviously allocated glfw recourses
// -----------------------------------------------------------------
glfwTerminate();
return 0;
}
// glfw: whenever the window size is changed (by OS or user resize) this callback function executes
// ------------------------------------------------------------------------------------------------
void framebuffer_size_callback(GLFWwindow* window, int width, int height) {
// make sure the viewport matches the new window dimensions; note that width and
// height will be significantly larger then specified on retina displays.
glViewport(0, 0, width, height);
}
只是一个最终的澄清,我不是说任何一种帧速率都很慢,我的意思是从我告诉visual studio运行项目(Ctrl + f5或运行调试器)到我能看到的时间实际的OpenGL窗口我尝试制作大约需要40秒或更长时间。
此外,当我运行代码时,cmd提示符在其后面运行,我也想知道为什么会发生这种情况,如果有办法阻止它或者由于设置而发生。