diff options
author | jimt <jimteeuwen@gmail.com> | 2012-12-17 07:25:08 -0800 |
---|---|---|
committer | jimt <jimteeuwen@gmail.com> | 2012-12-17 07:25:08 -0800 |
commit | 537db7b8f308d65c3463fc5932fbb9c58a818c6b (patch) | |
tree | c719c32dd3e576f30f237ce64b01dbf3cd2bb416 | |
parent | e3e2ec1e4c240059079396e7e58f3177093fa0ae (diff) | |
parent | 226050ea1215422973aaaa25044b515696ccd227 (diff) | |
download | gl-537db7b8f308d65c3463fc5932fbb9c58a818c6b.tar.gz |
Merge pull request #86 from jimarnold/fix-uniforms
Fix glUniform*v calls
-rw-r--r-- | uniformlocation.go | 57 |
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])) } |