繁体   English   中英

编译着色器失败,我是否需要在Intel平台上使用ubuntu的openGL驱动程序?

[英]Failure compiling the shaders, do I need openGL drivers for ubuntu on Intel platforms?

我试图在ubuntu上用顶点着色器编写一个简单的程序,就像这样。

const GLchar* vertexSource = (const GLchar*) "#version 130 core \n in vec2 position; \n void main() \n { \n gl_Position = vec4(position, 0.0, 1.0); \n }";

这是我的着色器,我在程序中正在编译它

GLuint vertexShader = glCreateShader(GL_VERTEX_SHADER);  
glShaderSource(vertexShader, 1, &vertexSource,  0);  
glCompileShader(vertexShader);

我尝试在glShaderSourceFunction中传递顶点着色器字符串的长度,但这给了我同样的错误。

但是glGetShaderiv()在编译代码时给了我错误。 我无法理解这里出了什么问题。

我错过了什么吗? 或者由于司机的意外而导致错误?

我在我的Intel i5 windows 8系统上安装了ubuntu 12.04,这是否意味着我在ubuntu上没有openGL图形驱动程序? 有人可以指点我到哪里可以得到它们吗? 此外,当驱动程序不存在时,不是openGL应该在软件中完成整个事情吗?

#version 130 core
             ^^^^ wat

OpenGL 3.0中没有Core上下文。

您可以使用以下代码获取着色器编译日志:

GLint log_len;
glGetShaderiv(vertexshader, GL_INFO_LOG_LENGTH, &log_len);
GLchar* comp_log = new GLchar[log_len + 1];
glGetShaderInfoLog(vertexshader, log_len, NULL, comp_log);
std::cout << "Shader compilation result: " << comp_log << std::endl;
delete[] comp_log;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM