- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在将一小部分 vec4
上传到 GPU 时遇到了一些问题。我已将这个问题归结为引发错误的最低限度代码。
这是我的 fragment 着色器:
precision mediump float;
uniform vec4 test[5];
void main() {
gl_FragColor = test[0]+test[1]+test[2]+test[3]+test[4];
}
顶点着色器很简单:
attribute vec4 vPosition;
void main(){
gl_Position = vPosition;
}
这是尝试上传 vec4
向量的代码:
float[] testBuffer = new float[4*5];
// Fill with 1/5s for now
Arrays.fill(testBuffer, 0.2f);
// Get the location
int testLoc = GLES20.glGetUniformLocation(mProgram, "test");
checkGlError("glGetUniformLocation test");
// Upload the buffer
GLES20.glUniform4fv(testLoc, 5, testBuffer, 0);
checkGlError("glUniform4fv testBuffer");
第二次调用checkGlError()
时发现错误,错误码为GL_INVALID_OPERATION。
我已阅读文档 on glUniform所有尺寸和类型似乎都是正确的。 testLoc
是一个有效的位置句柄,我在上传 fragment 和顶点着色器代码时没有出现错误。
我只是看不出我做错了什么!有什么想法吗?
--更新
最佳答案
参见 glUniform
文档:
GL_INVALID_OPERATION is generated if there is no current program object
确保在调用 glUniform
时您的着色器当前已绑定(bind)/使用(glUseProgram
已使用相应的着色器程序句柄调用)。统一在解除绑定(bind)着色器时保持其值(例如 glUseProgram(0)
),但程序必须在设置统一值时处于 Activity 状态。
关于android - GLES20.glUniform4fv 给出 GL_INVALID_OPERATION (1282),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9517557/
当我调用 glUniform2fv 时到底会发生什么? 它是同步复制传递的缓冲区还是只是接受指针并稍后使用该数据?它保留缓冲区吗? 换句话说:在函数中传递本地创建的或非保留的缓冲区是否安全,或者由我来
我接到了一项任务,要将一个简单的电子表格转换为要在网站上使用的 HTML 表单,该任务将使用 JavaScript 进行一些计算。这根本没问题,除非我对财务功能一无所知,而且我遇到了 FV( futu
我负责表单的验证。我使用 BootstrapValidator v0.4.5 库。我想触发“success.form.fv”事件来发送表单数据。 有人可以帮我修复这段代码以进入处理程序并查看警报吗?
我正在尝试计算客户的终生值(value)。假设一位新客户每年支付 10 万美元并保留 5 年。让我们以 10% 的利率对 future 几年的付款进行折扣。 这是手动计算: Year 1 $
我想知道下面的命令到底是什么意思?? rm -fv csf.tgz 我输入这个命令作为在我的 virtualmin 上安装 csf 的第一步,但我不知道确切的含义。我刚刚复制并粘贴了它。 最佳答案 r
我正在将一些相当复杂的计算从 Excel 电子表格转换为 PHP。我卡在 Excel 的 FV 函数的转换上,它是这样定义的: FV( interest_rate, number_payments,
我是一名优秀的程序员,十分优秀!