Opengl es glUniform1i(int,Bool)与glUniform1i(int,int)
我正在尝试将一些OpenGLES代码从iOS移植到Android 在iOS中,我有以下代码:Opengl es glUniform1i(int,Bool)与glUniform1i(int,int),opengl-es,opengl-es-2.0,gpuimage,android-gpuimageview,Opengl Es,Opengl Es 2.0,Gpuimage,Android Gpuimageview,我正在尝试将一些OpenGLES代码从iOS移植到Android 在iOS中,我有以下代码: - (void)setColorOn:(BOOL)yes { glUniform1i(colorOnUniform, yes); } 其中glUniform1i()方法将整数作为统一位置和布尔值 在Android中,我能得到的最接近的结果是: public void setColorOn() { GLES20.glUniform1i(colorOnUniform, 0); }
- (void)setColorOn:(BOOL)yes
{
glUniform1i(colorOnUniform, yes);
}
其中glUniform1i()方法将整数作为统一位置和布尔值
在Android中,我能得到的最接近的结果是:
public void setColorOn() {
GLES20.glUniform1i(colorOnUniform, 0);
}
其中glUniform1i()方法将一个整数作为统一位置,另一个整数作为纹理id
我翻遍了Kronos的文档,但似乎找不到合适的翻译
想法 等等什么?在这两种情况下,
glUniform1i
都需要2个整数。我不知道开发人员为什么插入布尔值。无论如何,iOS布尔值转换为YES
(true)=1和NO
(false)=0。该值可能在着色器中用作if(colornUniform==0)。。。;否则代码>
此方法可能类似于:
- (void)setColorOn:(BOOL)yes
{
glUniform1i(colorOnUniform, yes?1:0);
}
问题解决了…哈哈。。完全地从来没有想过BOOL被用作每个案例的Int。。。谢谢你的接球!会解释为什么我找不到方法定义!