C++ 将一个字符传递给 glShaderSource

标签 c++ opengl vertex-shader

所以我一直收到错误“从 char** 到 const GLchar** 的无效转换”。我在这里阅读过关于此错误的类似帖子,但我似乎仍然无法修复它,因此非常感谢您的帮助。下面是我的 opengl c++ 程序的片段。 我有一个声明如下的 char 函数:

char *loadShaderFile(char *fileName)

在不同的函数中,我执行以下操作:

    char *vertexShaderSource = loadShaderFile((char *)"vshader.glsl");
    glShaderSource(vertexShader, 1, &vertexShaderSource, NULL);
    free(vertexShaderSource);

最佳答案

尝试在 char * 指针声明之前添加 const 限定符,如下所示:

const char *vertexShaderSource = loadShaderFile((char *)"vshader.glsl");
glShaderSource(vertexShader, 1, &vertexShaderSource, NULL);
free(vertexShaderSource);

关于C++ 将一个字符传递给 glShaderSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50035865/

相关文章:

c++ - 可以将同一个 OpenGL 对象绑定(bind)两次吗?

c++ - 在 C++ 中将临时插入 vector

opengl - 使用 GL_TRIANGLE_STRIP 绘制四边形

javascript - 三.JS着色器: Apply color gradient blend to geometry on multiple axes?

c++ - 这个顶点着色器在做什么?

ios - 使用glVertexAttribPointer在带有着色器的OpenGL 2.0中绘制模型

c++ - 删除指针成员变量的数组内存

c++ - 枚举中 "constants"的数量

c++ - 在共享顶点上应用颜色

c++ - 在不同的 VBO 中存储不同的顶点属性