Mercurial > touhou
comparison pytouhou/ui/opengl/shader.pyx @ 617:a6af3ff86612
Change all “void except *” function into “bint except True”, to prevent PyErr_Occurred() from being called at each call.
| author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
|---|---|
| date | Sun, 29 Mar 2015 00:08:20 +0100 |
| parents | 3c2f96f1d715 |
| children |
comparison
equal
deleted
inserted
replaced
| 616:4ce3ef053a25 | 617:a6af3ff86612 |
|---|---|
| 56 self.link() | 56 self.link() |
| 57 | 57 |
| 58 if use_debug_group: | 58 if use_debug_group: |
| 59 glPopDebugGroup() | 59 glPopDebugGroup() |
| 60 | 60 |
| 61 cdef void create_shader(self, const GLchar *string, GLenum_shader shader_type) except *: | 61 cdef bint create_shader(self, const GLchar *string, GLenum_shader shader_type) except True: |
| 62 cdef GLint temp | 62 cdef GLint temp |
| 63 cdef const GLchar *strings[2] | 63 cdef const GLchar *strings[2] |
| 64 strings[:] = [shader_header, string] | 64 strings[:] = [shader_header, string] |
| 65 | 65 |
| 66 # create the shader handle | 66 # create the shader handle |
| 89 raise GLSLException(buf) | 89 raise GLSLException(buf) |
| 90 else: | 90 else: |
| 91 # all is well, so attach the shader to the program | 91 # all is well, so attach the shader to the program |
| 92 glAttachShader(self.handle, shader) | 92 glAttachShader(self.handle, shader) |
| 93 | 93 |
| 94 cdef void link(self) except *: | 94 cdef bint link(self) except True: |
| 95 cdef GLint temp | 95 cdef GLint temp |
| 96 | 96 |
| 97 # link the program | 97 # link the program |
| 98 glLinkProgram(self.handle) | 98 glLinkProgram(self.handle) |
| 99 | 99 |
| 130 # bind the program | 130 # bind the program |
| 131 glUseProgram(self.handle) | 131 glUseProgram(self.handle) |
| 132 | 132 |
| 133 # upload a floating point uniform | 133 # upload a floating point uniform |
| 134 # this program must be currently bound | 134 # this program must be currently bound |
| 135 cdef void uniform_1(self, name, GLfloat val) except *: | 135 cdef bint uniform_1(self, name, GLfloat val) except True: |
| 136 glUniform1fv(self.get_uniform_location(name), 1, &val) | 136 glUniform1fv(self.get_uniform_location(name), 1, &val) |
| 137 | 137 |
| 138 # upload a vec4 uniform | 138 # upload a vec4 uniform |
| 139 cdef void uniform_4(self, name, GLfloat a, GLfloat b, GLfloat c, GLfloat d) except *: | 139 cdef bint uniform_4(self, name, GLfloat a, GLfloat b, GLfloat c, GLfloat d) except True: |
| 140 cdef GLfloat vals[4] | 140 cdef GLfloat vals[4] |
| 141 vals[0] = a | 141 vals[0] = a |
| 142 vals[1] = b | 142 vals[1] = b |
| 143 vals[2] = c | 143 vals[2] = c |
| 144 vals[3] = d | 144 vals[3] = d |
| 145 glUniform4fv(self.get_uniform_location(name), 1, vals) | 145 glUniform4fv(self.get_uniform_location(name), 1, vals) |
| 146 | 146 |
| 147 # upload a uniform matrix | 147 # upload a uniform matrix |
| 148 # works with matrices stored as lists, | 148 # works with matrices stored as lists, |
| 149 # as well as euclid matrices | 149 # as well as euclid matrices |
| 150 cdef void uniform_matrix(self, name, Matrix *mat) except *: | 150 cdef bint uniform_matrix(self, name, Matrix *mat) except True: |
| 151 # obtain the uniform location | 151 # obtain the uniform location |
| 152 loc = self.get_uniform_location(name) | 152 loc = self.get_uniform_location(name) |
| 153 # uplaod the 4x4 floating point matrix | 153 # uplaod the 4x4 floating point matrix |
| 154 glUniformMatrix4fv(loc, 1, False, <GLfloat*>mat) | 154 glUniformMatrix4fv(loc, 1, False, <GLfloat*>mat) |
