如何解决无法创建简单的彩色窗口OpenGL,GLFW,GLEW
我已经尝试了几天来创建一个带有蓝色背景的简单窗口,但是由于某些未知的原因,我只得到了一个黑色窗口。我正在使用以下3个文件来编译一个小程序。
- main.cpp
#include "wind.hpp"
int main()
{
wind display;
display.test();
}
- wind.hpp
#include <GL/glew.h>
#include <GLFW/glfw3.h>
class wind
{
public:
void test();
};
- wind.cpp
#include "wind.hpp"
void wind::test()
{
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MInor,3);
GLFWwindow* window = glfwCreateWindow(800,600,"LearnopenGL",nullptr,nullptr);
glfwMakeContextCurrent(window);
glewInit();
std::cout << "Version: " << glGetString(GL_VERSION) << std::endl;
static unsigned frameCount = 0;
while (true)
{
glClearColor(0.0f,0.0f,1.0f,1.0f);
glClear(GL_COLOR_BUFFER_BIT);
std::cout << ++frameCount << '\r';
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
}
系统:Ubuntu 18.04.5 LTS。 使用的工具:OpenGL(彩色),GLFW(用于窗口),GLEW(用于OpenGL调用),CMake(用于建筑物)。
一些事实:
-
glfwCreateWindow(800,NULL,NULL) != NULL
-
glewInit() == GLEW_OK
- 在控制台中,我得到的唯一输出是
Version:
。后续的std::cout
似乎都没有执行(没有输出)。 - 如果删除行
std::cout << "Version: " << glGetString(GL_VERSION) << std::endl;
,则会在控制台中获得frameCount
值(因此,主循环正在运行)。但是窗户还是黑的。 - 如果我使用“ wind.hpp”和“ wind.cpp”(例如“ libwind.a”)创建静态库,然后将其链接到程序(“ main.cpp”)并进行编译。我得到了蓝色的窗口。但是我应该只为创建这个简单的蓝色窗口而做所有这一切。我不明白为什么它会这样运作,而不是其他...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。