当我为顶点着色器调用 glCompileShader() 并使用 glGetShaderiv 获取状态时,它返回 false。但是当我查看日志时,它是空的。我是着色器新手,所以我确信我做错了什么。这是我的代码:
void GLSLProgram::compileShader(const std::string& filePath, GLuint id)
{
/*Shader Program Reading*/
//don't worry about this \/, it just loads my shader program from the file.
std::string shader = gdcUtil::implode(gdcFile::readBlock(filePath, 0, 0, '\n', 0, true), true);
const char* shaderPtr = shader.c_str();
/*Shader Source Refering*/
glShaderSource(id, 1, &shaderPtr, nullptr);
/*Shader Compiling*/
glCompileShader(id);
GLint success = 0;
glGetShaderiv(id, GL_COMPILE_STATUS, &success);
if (success == GL_FALSE) {
//Setup Error Log
GLint maxLength = 0;
glGetShaderiv(id, GL_INFO_LOG_LENGTH, &maxLength);
std::vector<char> errorLog(maxLength);
glGetShaderInfoLog(id, …Run Code Online (Sandbox Code Playgroud) 有没有办法从函数中返回多个值?在我正在研究的程序中,我希望将4个不同的int变量返回到main函数,从单独的函数返回,继续通过程序所需的所有统计数据.我发现没办法真正做到这一点.非常感谢任何帮助,谢谢.