gpt4 book ai didi

common-lisp - 如何检查 cl-opengl 中的着色器和程序错误?

转载 作者:行者123 更新时间:2023-12-04 10:54:14 24 4
gpt4 key购买 nike

我正在学习 opengl ES 2.0。我正在学习检查 C 中的错误,但我不知道在 cl-opengl 中进行同样的处理,因为我没有看到任何类似 gl:get-shaderiv 的函数或 gl:get-programiv ,那么,如何使下面的代码相同?但是在 cl-opengl 中。

// Check the compile status
glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
if(!compiled) {
GLint info
Len = 0;
glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
if(infoLen > 1) {
char* infoLog = malloc(sizeof(char) * infoLen);
glGetShaderInfoLog(shader, infoLen, NULL, infoLog);
esLogMessage("Error compiling shader:\n%s\n", infoLog);
free(infoLog);
}
glDeleteShader(shader);
return 0;
}


// Check the link status
glGetProgramiv(programObject, GL_LINK_STATUS, &linked);
if(!linked) {
GLint infoLen = 0;
glGetProgramiv(programObject, GL_INFO_LOG_LENGTH, &infoLen);
if(infoLen > 1) {
char* infoLog = malloc(sizeof(char) * infoLen);
glGetProgramInfoLog(programObject, infoLen, NULL, infoLog);
esLogMessage("Error linking program:\n%s\n", infoLog);
free(infoLog);
}
glDeleteProgram(programObject);
return FALSE;
}

最佳答案

有两种获取方式:

第一的:

(gl:get-shader shader :compile-status) 

或者您可以使用第二个选项:

%gl:get-shader-iv

通过这种方式,您需要手动为 &compiled 分配一个指针。

关于common-lisp - 如何检查 cl-opengl 中的着色器和程序错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59308327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com