aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjimt <jimteeuwen@gmail.com>2012-12-17 07:25:08 -0800
committerjimt <jimteeuwen@gmail.com>2012-12-17 07:25:08 -0800
commit537db7b8f308d65c3463fc5932fbb9c58a818c6b (patch)
treec719c32dd3e576f30f237ce64b01dbf3cd2bb416
parente3e2ec1e4c240059079396e7e58f3177093fa0ae (diff)
parent226050ea1215422973aaaa25044b515696ccd227 (diff)
downloadgl-537db7b8f308d65c3463fc5932fbb9c58a818c6b.tar.gz
Merge pull request #86 from jimarnold/fix-uniforms
Fix glUniform*v calls
-rw-r--r--uniformlocation.go57
1 files changed, 33 insertions, 24 deletions
diff --git a/uniformlocation.go b/uniformlocation.go
index 111c31a..2019232 100644
--- a/uniformlocation.go
+++ b/uniformlocation.go
@@ -24,69 +24,78 @@ func (location UniformLocation) Uniform3f(x float32, y float32, z float32) {
C.glUniform3f(C.GLint(location), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
}
-func (location UniformLocation) Uniform1fv(v []float32) {
- C.glUniform1fv(C.GLint(location), C.GLsizei(len(v)),
- (*C.GLfloat)(ptr(v)))
+func (location UniformLocation) Uniform1fv(count int, v []float32) {
+ if len(v) < 1 {
+ panic("Invalid array length - must be at least 1")
+ }
+ C.glUniform1fv(C.GLint(location), C.GLsizei(count), (*C.GLfloat)(&v[0]))
}
func (location UniformLocation) Uniform1i(x int) {
C.glUniform1i(C.GLint(location), C.GLint(x))
}
-func (location UniformLocation) Uniform1iv(v []int32) {
- if len(v) > 0 {
- C.glUniform1iv(C.GLint(location), C.GLsizei(len(v)), (*C.GLint)(&v[0]))
+func (location UniformLocation) Uniform1iv(count int, v []int32) {
+ if len(v) < 1 {
+ panic("Invalid array length - must be at least 1")
}
+ C.glUniform1iv(C.GLint(location), C.GLsizei(count), (*C.GLint)(&v[0]))
}
-func (location UniformLocation) Uniform2fv(v []float32) {
- if len(v) > 0 {
- C.glUniform2fv(C.GLint(location), C.GLsizei(len(v)), (*C.GLfloat)(&v[0]))
+func (location UniformLocation) Uniform2fv(count int, v []float32) {
+ if len(v) < 1 {
+ panic("Invalid array length - must be at least 1")
}
+ C.glUniform2fv(C.GLint(location), C.GLsizei(count), (*C.GLfloat)(&v[0]))
}
func (location UniformLocation) Uniform2i(x int, y int) {
C.glUniform2i(C.GLint(location), C.GLint(x), C.GLint(y))
}
-func (location UniformLocation) Uniform2iv(v []int32) {
- if len(v) > 0 {
- C.glUniform2iv(C.GLint(location), C.GLsizei(len(v)), (*C.GLint)(&v[0]))
+func (location UniformLocation) Uniform2iv(count int, v []int32) {
+ if len(v) < 1 {
+ panic("Invalid array length - must be at least 1")
}
+ C.glUniform2iv(C.GLint(location), C.GLsizei(count), (*C.GLint)(&v[0]))
}
-func (location UniformLocation) Uniform3fv(v []float32) {
- if len(v) > 0 {
- C.glUniform3fv(C.GLint(location), C.GLsizei(len(v)), (*C.GLfloat)(&v[0]))
+func (location UniformLocation) Uniform3fv(count int, v []float32) {
+ if len(v) < 1 {
+ panic("Invalid array length - must be at least 1")
}
+ C.glUniform3fv(C.GLint(location), C.GLsizei(count), (*C.GLfloat)(&v[0]))
}
func (location UniformLocation) Uniform3i(x int, y int, z int) {
C.glUniform3i(C.GLint(location), C.GLint(x), C.GLint(y), C.GLint(z))
}
-func (location UniformLocation) Uniform3iv(v []int32) {
- if len(v) > 0 {
- C.glUniform3iv(C.GLint(location), C.GLsizei(len(v)), (*C.GLint)(&v[0]))
+func (location UniformLocation) Uniform3iv(count int, v []int32) {
+ if len(v) < 1 {
+ panic("Invalid array length - must be at least 1")
}
+ C.glUniform3iv(C.GLint(location), C.GLsizei(count), (*C.GLint)(&v[0]))
}
func (location UniformLocation) Uniform4f(x float32, y float32, z float32, w float32) {
C.glUniform4f(C.GLint(location), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
}
-func (location UniformLocation) Uniform4fv(v []float32) {
- if len(v) > 0 {
- C.glUniform4fv(C.GLint(location), C.GLsizei(len(v)), (*C.GLfloat)(&v[0]))
+func (location UniformLocation) Uniform4fv(count int, v []float32) {
+ if len(v) < 1 {
+ panic("Invalid array length - must be at least 1")
}
+ C.glUniform4fv(C.GLint(location), C.GLsizei(count), (*C.GLfloat)(&v[0]))
}
func (location UniformLocation) Uniform4i(x int, y int, z int, w int) {
C.glUniform4i(C.GLint(location), C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
}
-func (location UniformLocation) Uniform4iv(v []int32) {
- if len(v) > 0 {
- C.glUniform4iv(C.GLint(location), C.GLsizei(len(v)), (*C.GLint)(&v[0]))
+func (location UniformLocation) Uniform4iv(count int, v []int32) {
+ if len(v) < 1 {
+ panic("Invalid array length - must be at least 1")
}
+ C.glUniform4iv(C.GLint(location), C.GLsizei(count), (*C.GLint)(&v[0]))
}