gpt4 book ai didi

c++ - 生成带有 GLFW 的窗口,背景颜色不变

转载 作者:行者123 更新时间:2023-12-04 19:25:10 26 4
gpt4 key购买 nike

我正在尝试更改由 OpenGL/GLFW 生成的窗口中的背景颜色,并且我使用的代码与 GLFW 文档中的代码类似。我在 Ubuntu 20.04 上,无论 glClearColor() 函数中的参数如何,窗口背景始终为黑色。
我在 Windows 10 上使用 VS 进行了尝试,它运行良好,但在 Ubuntu 上它根本不工作。不会生成错误消息。
我还关注了 The Cherno 的 Sparky 游戏引擎系列,并尝试将 glClear() 函数封装在一个类方法中,但这并没有改变任何东西。
这是整个代码:

#include <iostream>
#include <GL/gl.h>
#include <GLFW/glfw3.h>

int main(int argc, char *argv[])
{
std::cout << "Hello world!" << std::endl;
if (!glfwInit())
{
// Initialization failed
exit(EXIT_FAILURE);
}

GLFWwindow* window = glfwCreateWindow(640, 480, "My Title", NULL, NULL);
if (!window)
{
// Window or OpenGL context creation failed
std::cout << "Error creating window!" << std::endl;
glfwTerminate();
exit(EXIT_FAILURE);
}

glfwMakeContextCurrent(window);
glfwSwapInterval(1);

glClearColor(1.0f, 0.0f, 0.0f, 1.0f);

while (!glfwWindowShouldClose(window))
{
int width, height;

glfwGetFramebufferSize(window, &width, &height);

glViewport(0, 0, width, height);
glClear(GL_COLOR_BUFFER_BIT);



glfwSwapBuffers(window);
glfwPollEvents();
}

glfwDestroyWindow(window);

glfwTerminate();
exit(EXIT_SUCCESS);

return 0;
}
我应该得到一个红色背景的窗口,但它是黑色的。
作为附加元素,我还使用 CMake 来帮助配置和构建项目(我知道这有点矫枉过正),我相信 clang 是用于项目的编译器。也许这会影响结果。

最佳答案

glfwMakeContextCurrent(window) 之后你需要一个合适的加载器.
如果您使用glad,您应该调用gladLoadGL(glfwGetProcAddress)glfwMakeContextCurrent(window) 之后正如官方文档所建议的 here .

关于c++ - 生成带有 GLFW 的窗口,背景颜色不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71848888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com