我正在制作一个程序,它为不同的不同基元使用两个不同的着色器.我的问题是,如果我绑定一个程序,发送它统一变量,然后使用另一个着色器程序并回到第一个,传递的统一值是否仍然存在?这是一些伪代码:
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();
}
}
Run Code Online (Sandbox Code Playgroud) (car ''abracadabra)相当于(car (quote (quote abracadabra)),它的结果是(car (quote abracadabra))- >quote
在另一方面(car (quote (a b)))评估a,这对我来说是直观的.
所以我的问题是,为什么Scheme不评估第二个引用(car (quote (quote abracadabra))(即评估(car (quote abracadabra))为(car abracadabra)),但是评估报价(car (quote (a b)))(即为什么不是答案quote)?