我正在 mac os x (10.12) 上开发一个简单的离屏渲染应用程序,但总是出现黑屏。我确认着色器编译和链接没有问题,将纹理更改为单一颜色也可以。然后我注释了有关深度信息相关的代码,但没有效果。单步调试时,没有发现glGetError返回错误。以下是代码,请问有什么问题吗?
GLuint program;
if (compile_link_shader(vertex_shader_source, fragment_shader_source, &program) < 0) {
base_error_log("call compile_link_shader failed\n");
return -1;
}
glViewport(0, 0, target->width, target->height);
GLuint vao, vbo, ibo, loc_attr;
glGenVertexArrays(1, &vao);
glGenBuffers(1, &vbo);
glGenBuffers(1, &ibo);
glBindVertexArray(vao);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);
glBufferData(GL_ARRAY_BUFFER, sizeof(pos_coord), pos_coord, GL_STATIC_DRAW);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(element_index), element_index, GL_STATIC_DRAW);
loc_attr = _static_cast(GLuint) glGetAttribLocation(program, "vertexPosition");
glVertexAttribPointer(loc_attr, 2, GL_FLOAT, GL_FALSE,
4 * sizeof(GLfloat), _static_cast(GLvoid*) (0 * 2 * sizeof(GLfloat)));
glEnableVertexAttribArray(loc_attr);
loc_attr = (GLuint) glGetAttribLocation(program, "textureCoordinate");
glVertexAttribPointer(loc_attr, 2, GL_FLOAT, GL_FALSE,
4 …Run Code Online (Sandbox Code Playgroud)