Opengl 启用/禁用frag&;垂直着色器

Opengl 启用/禁用frag&;垂直着色器,opengl,glsl,shader,fragment-shader,vertex-shader,Opengl,Glsl,Shader,Fragment Shader,Vertex Shader,目前我正在使用 glUseProgramObjectARB(ProgramObject); 及 但它不能正确地切换回来,并给我一个“无效操作glError”沿着这些线 void updateAnim_withShader() { int location; location = getUniLoc(ProgramObject, "currentTime"); ParticleTime += 0.002f; if (ParticleTime > 15.

目前我正在使用

glUseProgramObjectARB(ProgramObject);

但它不能正确地切换回来,并给我一个“无效操作glError”沿着这些线

void updateAnim_withShader()
{
    int location;

    location = getUniLoc(ProgramObject, "currentTime"); 
    ParticleTime += 0.002f;

    if (ParticleTime > 15.0)
        ParticleTime = 0.0;

    glUniform1fARB(location, ParticleTime);
    printOpenGLError();
}
正确/正确的方法是什么(启用/禁用着色器)


[我的代码文件(临时链接已删除)][1]

您的
位置
为-1,因为实际
当前时间
制服未在着色器中使用。

您的
位置
为-1,因为实际
当前时间
制服未在着色器中使用。

请向我们展示更多代码。到目前为止,我只能做出假设,现在我猜您正在尝试获得一个没有着色器绑定的统一位置,这很可能会给您一个错误。请向我们展示更多代码。到目前为止,我只能做一些假设,现在我猜你正在尝试在没有着色器边界的情况下获得一个统一的位置,这很可能会给你一个错误。
void updateAnim_withShader()
{
    int location;

    location = getUniLoc(ProgramObject, "currentTime"); 
    ParticleTime += 0.002f;

    if (ParticleTime > 15.0)
        ParticleTime = 0.0;

    glUniform1fARB(location, ParticleTime);
    printOpenGLError();
}