2014-10-20 1 views
0

하나의 GLFloat 균일 값을 설정하려고합니다 (C API에서 glUniform1f).
here 이상의 유니폼 모듈에 대한 문서 페이지를보고 있는데, 그렇게 할 방법이없는 것 같습니다.단일 UniformComponent 유니폼을 어떻게?

일종의 UniformComponent a => Uniform a 인스턴스가 예상되지만 그럴 수는 없습니다.
(특히 typeclass UniformComponent의 기능이 숨겨져 있기 때문에) 분명히 보입니다. 그렇다면 나쁜 습관입니까? 내가 뭔가 빠진거야? 아니면 정말 간과하고 원시 바인딩을 사용해야합니까?

답변

1

지금은 원시 바인딩을 사용하고 있습니다.
정말 간과한다면, 당신이 필요로하는 것만을 Graphics.Rendering.OpenGL.Raw에서 가져올 수 있습니다. 그러면 랩핑 된 C API가 생깁니다.
다양한 유니폼 setter here을 찾을 수 있습니다.

내 사용은 다음과 같습니다

UniformLocation tLoc <- get $ uniformLocation shaderProgram "t" 
glUniform1f tLoc tValue 

그것은 아니에요 최적의 솔루션, 잘, 그것은 원시의, 이후 - 일부 추상화 (UniformLocation) 및 임시 다형성을 잃게 (NO typeclasses, 당신 때문에 C에서와 같이 함수 이름 접미사를 사용하십시오.

관련 문제