我想设置一个GLfloat统一值(所以在C API中glUniform1f
)。
我正在浏览here上的Uniform模块的文档页面,似乎没有办法做到这一点。
我有点期待UniformComponent a => Uniform a
的实例,但没有。{
这似乎非常明显(特别是因为类型UniformComponent
的函数被隐藏了),那么这是不好的做法?我错过了什么吗?还是真的被忽视了,我必须使用原始绑定?
答案 0 :(得分:1)
现在我正在使用原始绑定
因此,如果真的被忽略了,可以从Graphics.Rendering.OpenGL.Raw
导入您需要的内容,然后您将获得包装的C API。
你可以找到各种统一的制定者here。
我的用法如下:
UniformLocation tLoc <- get $ uniformLocation shaderProgram "t"
glUniform1f tLoc tValue
这不是最好的解决方案,因为它是原始的 - 你失去了一些抽象(UniformLocation
)和ad-hoc多态(没有类型类,所以你使用像在C中那样的函数名后缀)。