我有一个编译的着色器或程序(不确定正确的术语),我需要删除它。
我如何找到已编译程序和/或着色器的 ID 来执行此操作?
我知道它存在是因为调试器告诉我我正在尝试重新定义它,因此无法再次编译它:
ERROR: 0:1: error(#198) Redefinition at_coord_Y
ERROR: 1:1: error(#248) Function already has a body main
着色器源代码的第一行是:
"in float at_coord_Y;"
我可以以某种方式使用它来查找 ID 吗?
编辑1:希望澄清一下,着色器无法编译,因为它已经存在。
GLint compiled = UNDEFINED_VALUE;
const GLchar* shaderSrc[] = {
"in float at_coord_Y;",
"void main()",
"{",
// Dont mind the empty space
"}"
};
GLuint shaderId = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(shaderId, glNumberOfLines(shaderSrc), shaderSrc, NULL);
glCompileShader(shaderId); // Fail to compile because it already exists. Redefinition error.
glGetShaderiv(shaderId), GL_COMPILE_STATUS, &compiled); // Compile status GL_FALSE
但是如何找到现有着色器(或程序)的 ID?