Остаются ли юниформ-значения в шейдере GLSL, если они не привязаны?

Я делаю программу, которая использует два разных шейдера для разных разных примитивов. Мой вопрос: если я привяжу программу, отправлю ей юниформ-переменные, затем использую другую шейдерную программу и вернусь к первой, останутся ли переданные юниформ-значения? Вот некоторый псевдокод:

glUseProgram(shader1);
glUniform(shader1,...);
//stuff

for(elements in a list) {
    if(element.type = 1) {
        glUseProgram(shader2);
        element.draw();
    } else {
        glUseProgram(shader1); //Here, do the uniforms from above remain, if shader2 was bound before?
        element.draw();
    }
}
22
задан genpfault 1 June 2012 в 21:35
поделиться