【发布时间】:2013-12-27 20:56:46
【问题描述】:
我想创建一个简单的工具来测试我的着色器。它应该尝试编译它们,并从驱动程序输出任何消息。但是,我遇到了麻烦:它出现了段错误。这是代码:
#include <stdlib.h>
#include <GL/glew.h>
#include <GL/gl.h>
/* Test shader */
static const GLchar * vertexSource =
"#version 150 core\n"
"in vec2 position;"
"in vec3 color;"
"out vec3 Color;"
"void main() {"
" Color = color;"
" gl_Position = vec4(position, 0.0, 1.0);"
"}";
int main(void)
{
GLuint vertexShader;
glewExperimental = GL_TRUE;
glewInit();
vertexShader = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(vertexShader, 1, &vertexSource, NULL);
glCompileShader(vertexShader);
glDeleteShader(vertexShader);
return EXIT_SUCCESS;
}
除了Segmentation fault 之外,不会发出其他消息。谁能解释发生了什么?
P.S.:FWIW,我在 Radeon HD 3200,GCC 版本 4.8.2 上使用 R600g Mesa (10.0) 驱动程序。
【问题讨论】:
标签: c opengl segmentation-fault shader