我在C++中使用此命令,因为我在没有控制台的情况下启动,以便将输出定向到控制台窗口。我也想将着色器错误定向到这个控制台。
我需要什么参数来完成它?或者是否有我可以读取的文件数据类型?
AllocConsole();
freopen("CONIN$", "r", stdin);
freopen("CONOUT$", "w", stdout);
freopen("CONOUT$", "w", stderr); 发布于 2014-05-06 16:44:00
着色器编译错误通过glGetShaderInfoLog报告。您需要负责从OpenGL获取日志并将其写入stdio文件流。像这样的东西
GLint shader_status;
glGetShaderiv(shader, GL_COMPILE_STATUS, &shader_status);
if( shader_status == GL_FALSE ) {
GLint log_length, returned_length;
glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &log_length);
char *shader_infolog = calloc(log_length);
if(!shader_infolog) {
goto alloc_infolog_failed;
}
glGetShaderInfoLog(
shader,
log_length,
&returned_length,
shader_infolog);
fputs("Shader compilation failed:\n", stderr);
fwrite(shader_infolog, returned_length, 1, stderr);
fputc('\n', stderr);
free(shader_infolog);
goto failed_compile;
}https://stackoverflow.com/questions/23489310
复制相似问题