Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl es glUniform1i(int,Bool)与glUniform1i(int,int)_Opengl Es_Opengl Es 2.0_Gpuimage_Android Gpuimageview - Fatal编程技术网

Opengl es glUniform1i(int,Bool)与glUniform1i(int,int)

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); }

我正在尝试将一些OpenGLES代码从iOS移植到Android

在iOS中,我有以下代码:

- (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。。。谢谢你的接球!会解释为什么我找不到方法定义!