启用/禁用碎片和垂直着色器

发布于 2024-10-31 10:23:07 字数 541 浏览 3 评论 0原文

目前我正在使用

glUseProgramObjectARB(ProgramObject);

and

glUseProgramObjectARB(0);

但它没有正确切换回来,并给我一个“无效操作 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]

Currently I'm using

glUseProgramObjectARB(ProgramObject);

and

glUseProgramObjectARB(0);

But it doesn't switch back properly,and gives me an “invalid operation glError” along these lines

void updateAnim_withShader()
{
    int location;

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

    if (ParticleTime > 15.0)
        ParticleTime = 0.0;

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

What's the proper/right way of doing it(enable/disable shaders)?

[my code files(Temporary link removed )][1]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心如荒岛 2024-11-07 10:23:07

您的 location 为 -1,因为着色器中未使用实际的 currentTime 制服。

Your location is -1, because the actual currentTime uniform was not used in a shader.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文