glclear 和 GL_COLOR_BUFFER_BIT 有问题

Posted

技术标签:

【中文标题】glclear 和 GL_COLOR_BUFFER_BIT 有问题【英文标题】:Having issues with glclear and GL_COLOR_BUFFER_BIT 【发布时间】:2021-02-19 18:19:31 【问题描述】:

所以我遇到了 glClear 和 GL_COLOR_BUFFER_BIT 没有被“声明”的问题。 这是错误

[build] ../src/main.cpp:27:17: error: ‘GL_COLOR_BUFFER_BIT’ was not declared in this scope
[build]    27 |         glClear(GL_COLOR_BUFFER_BIT);
[build]       |                 ^~~~~~~~~~~~~~~~~~~
[build] ../src/main.cpp:27:9: error: ‘glClear’ was not declared in this scope
[build]    27 |         glClear(GL_COLOR_BUFFER_BIT);
[build]       |         ^~~~~~~

这是代码

#define GLFW_INCLUDE_NONE
#include <GLFW/glfw3.h>

int main(void)

GLFWwindow* window;

/* Initialize the library */
if (!glfwInit())
    return -1;

/* Create a windowed mode window and its OpenGL context */
window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
if (!window)

    glfwTerminate();
    return -1;


/* Make the window's context current */
glfwMakeContextCurrent(window);

/* Loop until the user closes the window */
while (!glfwWindowShouldClose(window))

    /* Render here */
    glClear(GL_COLOR_BUFFER_BIT);

    /* Swap front and back buffers */
    glfwSwapBuffers(window);

    /* Poll for and process events */
    glfwPollEvents();
    

glfwTerminate();
return 0;

这是 cmakelist.txt

cmake_minimum_required(VERSION 3.0.0)
project(OpenGL VERSION 0.1.0)

add_executable(OpenGL src/main.cpp)

我用的是arch Linux,我用的是vs codium

【问题讨论】:

为什么要定义GLFW_INCLUDE_NONE"will explicitly to prevent[sic] the GLFW header from including the OpenGL header" 是定义这些符号的位置。尝试删除它。 【参考方案1】:

你告诉 GLFW #include 适当的系统 gl.h (via #define GLFW_INCLUDE_NONE) 所以你必须自己 #include 它(或删除 #define)。

【讨论】:

我被告知在他们的网站上这样做并修复了其他问题,我读了一些关于它的内容,它说它应该消除任何冲突,但我会尝试编辑:我试过了这并且未能在 glfw 定义的行中包含 glfw 和错误。 我还定义了 gl.h 并得到文件或目录不存在(我不认为你在谈论高兴,但我尝试通过我拥有它的目录包含它并且它没用。) @MeowskiesStudia 对于它的价值,我拿走了你的代码,注释掉了 #define GLFW_INCLUDE_NONE 指令,它编译得很好(Linux + glfw 3.3)。 @G.M.每当我删除 #define GLFW_INCLUDE_NONE 时,它都无法包含 glfw 并给出未定义 glfw 函数的调试错误(很抱歉这么晚了)

以上是关于glclear 和 GL_COLOR_BUFFER_BIT 有问题的主要内容,如果未能解决你的问题,请参考以下文章

glclear 和 GL_COLOR_BUFFER_BIT 有问题

glClear()不服从剪刀区域[关闭]

glClear [ GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT 和 GL_STENCIL_BUFFER_BIT ]

在 glClear 之后 PyOpenGL 不会多次重绘三角形条

学习OpenGL时找不到glClear

当有多个着色器程序时使用 glClear()