From 124fe6c7f08defb36305f6aa0bba203ab645ab8a Mon Sep 17 00:00:00 2001 From: Alexander Taylor Date: Sat, 18 Apr 2015 17:03:03 +0100 Subject: [PATCH] Changed 'except *' to 'except -1' for cython 0.22 --- kivy/graphics/context_instructions.pxd | 22 +++++++------- kivy/graphics/context_instructions.pyx | 8 ++--- kivy/graphics/fbo.pxd | 2 +- kivy/graphics/fbo.pyx | 3 +- kivy/graphics/gl_instructions.pyx | 8 +++-- kivy/graphics/instructions.pxd | 30 +++++++++--------- kivy/graphics/instructions.pyx | 49 ++++++++++++++++++------------ kivy/graphics/shader.pxd | 12 ++++---- kivy/graphics/shader.pyx | 25 +++++++++------ kivy/graphics/stencil_instructions.pxd | 8 ++--- kivy/graphics/stencil_instructions.pyx | 14 ++++++--- kivy/graphics/vertex_instructions_line.pxi | 9 +++--- setup.py | 8 ++--- 13 files changed, 110 insertions(+), 88 deletions(-) diff --git a/kivy/graphics/context_instructions.pxd b/kivy/graphics/context_instructions.pxd index f6562b1..f8027e2 100644 --- a/kivy/graphics/context_instructions.pxd +++ b/kivy/graphics/context_instructions.pxd @@ -16,39 +16,39 @@ cdef class PopState(ContextInstruction): pass cdef class LineWidth(ContextInstruction): - cdef void apply(self) + cdef int apply(self) except -1 cdef class Color(ContextInstruction): - cdef void apply(self) + cdef int apply(self) except -1 cdef class BindTexture(ContextInstruction): cdef int _index cdef object _source cdef Texture _texture - cdef void apply(self) + cdef int apply(self) except -1 cdef class LoadIdentity(ContextInstruction): pass cdef class PushMatrix(ContextInstruction): - cdef void apply(self) + cdef int apply(self) except -1 cdef class PopMatrix(ContextInstruction): - cdef void apply(self) + cdef int apply(self) except -1 cdef class ApplyContextMatrix(ContextInstruction): cdef object _target_stack cdef object _source_stack - cdef void apply(self) + cdef int apply(self) except -1 cdef class UpdateNormalMatrix(ContextInstruction): - cdef void apply(self) + cdef int apply(self) except -1 cdef class MatrixInstruction(ContextInstruction): cdef object _stack cdef Matrix _matrix - cdef void apply(self) + cdef int apply(self) except -1 cdef class Transform(MatrixInstruction): cpdef transform(self, Matrix trans) @@ -61,17 +61,17 @@ cdef class Rotate(Transform): cdef float _angle cdef tuple _axis cdef tuple _origin - cdef void apply(self) + cdef int apply(self) except -1 cdef void compute(self) cdef class Scale(Transform): cdef tuple _origin cdef float _x, _y, _z - cdef void apply(self) + cdef int apply(self) except -1 cdef set_scale(self, double x, double y, double z) cdef class Translate(Transform): cdef double _x, _y, _z - cdef void apply(self) + cdef int apply(self) except -1 cdef set_translate(self, double x, double y, double z) diff --git a/kivy/graphics/context_instructions.pyx b/kivy/graphics/context_instructions.pyx index 2107a2c..189656a 100644 --- a/kivy/graphics/context_instructions.pyx +++ b/kivy/graphics/context_instructions.pyx @@ -344,7 +344,7 @@ cdef class BindTexture(ContextInstruction): self.index = kwargs.get('index', 0) - cdef void apply(self): + cdef int apply(self) except -1: cdef RenderContext context = self.get_context() context.set_texture(self._index, self._texture) @@ -458,7 +458,7 @@ cdef class ApplyContextMatrix(ContextInstruction): self.target_stack = kwargs.get('target_stack', 'modelview_mat') self.source_stack = kwargs.get('source_stack', 'modelview_mat') - cdef void apply(self): + cdef int apply(self) except -1: cdef RenderContext context = self.get_context() m = context.get_state(self._target_stack) m = m.multiply(context.get_state(self._source_stack)) @@ -494,7 +494,7 @@ cdef class UpdateNormalMatrix(ContextInstruction): .. versionadded:: 1.6.0 ''' - cdef void apply(self): + cdef int apply(self) except -1: cdef RenderContext context = self.get_context() mvm = context.get_state('modelview_mat') context.set_state('normal_mat', mvm.normal_matrix()) @@ -509,7 +509,7 @@ cdef class MatrixInstruction(ContextInstruction): self.stack = kwargs.get('stack', 'modelview_mat') self._matrix = None - cdef void apply(self): + cdef int apply(self) except -1: '''Apply the matrix of this instance to the context model view matrix. ''' diff --git a/kivy/graphics/fbo.pxd b/kivy/graphics/fbo.pxd index 31b281a..2c202dd 100644 --- a/kivy/graphics/fbo.pxd +++ b/kivy/graphics/fbo.pxd @@ -24,7 +24,7 @@ cdef class Fbo(RenderContext): cdef void create_fbo(self) cdef void delete_fbo(self) - cdef void apply(self) + cdef int apply(self) except -1 cdef void raise_exception(self, str message, int status=?) cdef str resolve_status(self, int status) cdef void reload(self) diff --git a/kivy/graphics/fbo.pyx b/kivy/graphics/fbo.pyx index 901d600..d7f6c09 100644 --- a/kivy/graphics/fbo.pyx +++ b/kivy/graphics/fbo.pyx @@ -323,12 +323,13 @@ cdef class Fbo(RenderContext): else: glClear(GL_COLOR_BUFFER_BIT) - cdef void apply(self): + cdef int apply(self) except -1: if self.flags & GI_NEEDS_UPDATE: self.bind() RenderContext.apply(self) self.release() self.flag_update_done() + return 0 cdef void reload(self): # recreate the framebuffer, without deleting it. the deletion is not diff --git a/kivy/graphics/gl_instructions.pyx b/kivy/graphics/gl_instructions.pyx index afe3404..78b0fe5 100644 --- a/kivy/graphics/gl_instructions.pyx +++ b/kivy/graphics/gl_instructions.pyx @@ -50,8 +50,9 @@ cdef class ClearColor(Instruction): self.b = b self.a = a - cdef void apply(self): + cdef int apply(self) except -1: glClearColor(self.r, self.g, self.b, self.a) + return 0 property rgba: '''RGBA color used for the clear color, a list of 4 values in the 0-1 @@ -136,7 +137,7 @@ cdef class ClearBuffers(Instruction): self.clear_stencil = int(kwargs.get('clear_stencil', 0)) self.clear_depth = int(kwargs.get('clear_depth', 0)) - cdef void apply(self): + cdef int apply(self) except -1: cdef GLbitfield mask = 0 if self.clear_color: mask |= GL_COLOR_BUFFER_BIT @@ -145,7 +146,8 @@ cdef class ClearBuffers(Instruction): if self.clear_depth: mask |= GL_DEPTH_BUFFER_BIT glClear(mask) - + return 0 + property clear_color: '''If True, the color buffer will be cleared. ''' diff --git a/kivy/graphics/instructions.pxd b/kivy/graphics/instructions.pxd index 9008aef..09b0fd6 100644 --- a/kivy/graphics/instructions.pxd +++ b/kivy/graphics/instructions.pxd @@ -26,7 +26,7 @@ cdef class Instruction(ObjectWithUid): cdef object __weakref__ cdef object __proxy_ref - cdef void apply(self) + cdef int apply(self) except -1 IF DEBUG: cdef int flag_update(self, int do_parent=?, list _instrs=?) except -1 ELSE: @@ -58,9 +58,9 @@ cdef class ContextInstruction(Instruction): cdef list context_pop cdef RenderContext get_context(self) - cdef void set_state(self, str name, value) except * - cdef void push_state(self, str name) except * - cdef void pop_state(self, str name) except * + cdef int set_state(self, str name, value) except -1 + cdef int push_state(self, str name) except -1 + cdef int pop_state(self, str name) except -1 from context_instructions cimport BindTexture @@ -80,8 +80,8 @@ cdef class Callback(Instruction): cdef Shader _shader cdef object func cdef int _reset_context - cdef void apply(self) - cdef void enter(self) + cdef int apply(self) except -1 + cdef int enter(self) except -1 @@ -99,7 +99,7 @@ cdef class Canvas(CanvasBase): cpdef add(self, Instruction c) cpdef remove(self, Instruction c) cpdef draw(self) - cdef void apply(self) + cdef int apply(self) except -1 cdef class RenderContext(Canvas): @@ -113,14 +113,14 @@ cdef class RenderContext(Canvas): cdef void set_texture(self, int index, Texture texture) cdef void set_state(self, str name, value, int apply_now=?) cdef get_state(self, str name) - cdef void set_states(self, dict states) except * - cdef void push_state(self, str name) except * - cdef void push_states(self, list names) except * - cdef void pop_state(self, str name) except * - cdef void pop_states(self, list names) except * - cdef void enter(self) except * - cdef void leave(self) except * - cdef void apply(self) except * + cdef int set_states(self, dict states) except -1 + cdef int push_state(self, str name) except -1 + cdef int push_states(self, list names) except -1 + cdef int pop_state(self, str name) except -1 + cdef int pop_states(self, list names) except -1 + cdef int enter(self) except -1 + cdef int leave(self) except -1 + cdef int apply(self) except -1 cpdef draw(self) cdef void reload(self) diff --git a/kivy/graphics/instructions.pyx b/kivy/graphics/instructions.pyx index 2b5e081..5249556 100644 --- a/kivy/graphics/instructions.pyx +++ b/kivy/graphics/instructions.pyx @@ -57,8 +57,8 @@ cdef class Instruction(ObjectWithUid): if self.parent: self.parent.add(self) - cdef void apply(self): - pass + cdef int apply(self) except -1: + return 0 IF DEBUG: cdef int flag_update(self, int do_parent=1, list _instrs=None) except -1: @@ -145,7 +145,7 @@ cdef class InstructionGroup(Instruction): else: self.compiler = GraphicsCompiler() - cdef void apply(self): + cdef int apply(self) except -1: cdef Instruction c cdef list children if self.compiler is not None: @@ -161,6 +161,7 @@ cdef class InstructionGroup(Instruction): else: for c in self.children: c.apply() + return 0 cdef void build(self): self.compiled_children = self.compiler.compile(self) @@ -246,7 +247,7 @@ cdef class ContextInstruction(Instruction): cdef RenderContext context = getActiveContext() return context - cdef void apply(self): + cdef int apply(self) except -1: cdef RenderContext context = self.get_context() if self.context_push: context.push_states(self.context_push) @@ -254,20 +255,20 @@ cdef class ContextInstruction(Instruction): context.set_states(self.context_state) if self.context_pop: context.pop_states(self.context_pop) + return 0 - cdef void set_state(self, str name, value): + cdef int set_state(self, str name, value) except -1: self.context_state[name] = value self.flag_update() - cdef void push_state(self, str name): + cdef int push_state(self, str name) except -1: self.context_push.append(name) self.flag_update() - cdef void pop_state(self, str name): + cdef int pop_state(self, str name) except -1: self.context_pop.append(name) self.flag_update() - cdef class VertexInstruction(Instruction): '''The VertexInstruction class is the base for all graphics instructions that have a direct visual representation on the canvas, such as Rectangles, @@ -400,11 +401,12 @@ cdef class VertexInstruction(Instruction): cdef void build(self): pass - cdef void apply(self): + cdef int apply(self) except -1: if self.flags & GI_NEEDS_UPDATE: self.build() self.flag_update_done() self.batch.draw() + return 0 cdef class Callback(Instruction): @@ -466,7 +468,7 @@ cdef class Callback(Instruction): ''' self.flag_update() - cdef void apply(self): + cdef int apply(self) except -1: cdef RenderContext rcx cdef Context ctx cdef Shader shader @@ -512,9 +514,11 @@ cdef class Callback(Instruction): rcx.set_texture(index, texture) reset_gl_context() + return 0 - cdef void enter(self): + cdef int enter(self) except -1: self._shader.use() + return 0 property reset_context: '''Set this to True if you want to reset the OpenGL context for Kivy @@ -597,7 +601,7 @@ cdef class Canvas(CanvasBase): ''' self.apply() - cdef void apply(self): + cdef int apply(self) except -1: cdef float opacity = self._opacity cdef float rc_opacity cdef RenderContext rc @@ -609,6 +613,7 @@ cdef class Canvas(CanvasBase): InstructionGroup.apply(self) if opacity != 1.0: rc.pop_state('opacity') + return 0 cpdef add(self, Instruction c): # the after group must remain the last one. @@ -786,29 +791,29 @@ cdef class RenderContext(Canvas): cdef get_state(self, str name): return self.state_stacks[name][-1] - cdef void set_states(self, dict states): + cdef int set_states(self, dict states) except -1: cdef str name for name, value in states.iteritems(): self.set_state(name, value) - cdef void push_state(self, str name): + cdef int push_state(self, str name) except -1: stack = self.state_stacks[name] stack.append(stack[-1]) self.flag_update() - cdef void push_states(self, list names): + cdef int push_states(self, list names) except -1: cdef str name for name in names: self.push_state(name) - cdef void pop_state(self, str name): + cdef int pop_state(self, str name) except -1: stack = self.state_stacks[name] oldvalue = stack.pop() if oldvalue != stack[-1]: self.set_state(name, stack[-1]) self.flag_update() - cdef void pop_states(self, list names): + cdef int pop_states(self, list names) except -1: cdef str name for name in names: self.pop_state(name) @@ -828,13 +833,15 @@ cdef class RenderContext(Canvas): texture.bind() self.flag_update() - cdef void enter(self): + cdef int enter(self) except -1: self._shader.use() + return 0 - cdef void leave(self): + cdef int leave(self) except -1: self._shader.stop() + return 0 - cdef void apply(self): + cdef int apply(self) except -1: cdef list keys if PY2: keys = self.state_stacks.keys() @@ -857,6 +864,8 @@ cdef class RenderContext(Canvas): popActiveContext() self.flag_update_done() + return 0 + cdef void reload(self): pushActiveContext(self) reset_gl_context() diff --git a/kivy/graphics/shader.pxd b/kivy/graphics/shader.pxd index c418207..1058ff4 100644 --- a/kivy/graphics/shader.pxd +++ b/kivy/graphics/shader.pxd @@ -26,14 +26,14 @@ cdef class Shader: cdef void use(self) cdef void stop(self) - cdef void set_uniform(self, str name, value) except * - cdef void upload_uniform(self, str name, value) except * + cdef int set_uniform(self, str name, value) except -1 + cdef int upload_uniform(self, str name, value) except -1 cdef void upload_uniform_matrix(self, int loc, Matrix value) cdef int get_uniform_loc(self, str name) except * - cdef void build(self) except * - cdef void build_vertex(self, int link=*) except * - cdef void build_fragment(self, int link=*) except * - cdef void link_program(self) except * + cdef int build(self) except -1 + cdef int build_vertex(self, int link=*) except -1 + cdef int build_fragment(self, int link=*) except -1 + cdef int link_program(self) except -1 cdef int is_linked(self) cdef ShaderSource compile_shader(self, str source, int shadertype) cdef get_program_log(self, shader) diff --git a/kivy/graphics/shader.pyx b/kivy/graphics/shader.pyx index acda2bf..edb1c5a 100644 --- a/kivy/graphics/shader.pyx +++ b/kivy/graphics/shader.pyx @@ -230,13 +230,14 @@ cdef class Shader: ''' glUseProgram(0) - cdef void set_uniform(self, str name, value): + cdef int set_uniform(self, str name, value) except -1: if name in self.uniform_values and self.uniform_values[name] == value: - return + return 0 self.uniform_values[name] = value self.upload_uniform(name, value) + return 0 - cdef void upload_uniform(self, str name, value): + cdef int upload_uniform(self, str name, value) except -1: '''Pass a uniform variable to the shader. ''' cdef long vec_size, index, x, y @@ -255,7 +256,7 @@ cdef class Shader: #Logger.debug('Shader: uploading uniform %s (loc=%d, value=%r)' % (name, loc, value)) if loc == -1: #Logger.debug('Shader: -> ignored') - return + return 0 #Logger.debug('Shader: -> (gl:%d) %s' % (glGetError(), str(value))) if val_type is Matrix: @@ -414,6 +415,7 @@ cdef class Shader: free(int_list) else: raise Exception('for <%s>, type not handled <%s>' % (name, val_type)) + return 0 cdef void upload_uniform_matrix(self, int loc, Matrix value): cdef GLfloat mat[16] @@ -421,7 +423,7 @@ cdef class Shader: mat[x] = value.mat[x] glUniformMatrix4fv(loc, 1, False, mat) - cdef int get_uniform_loc(self, str name): + cdef int get_uniform_loc(self, str name) except *: cdef bytes c_name = name.encode('utf-8') cdef int loc = glGetUniformLocation(self.program, c_name) self.uniform_locations[name] = loc @@ -462,11 +464,12 @@ cdef class Shader: # save for the next run. self._current_vertex_format = vertex_format - cdef void build(self): + cdef int build(self) except -1: self.build_vertex() self.build_fragment() + return 0 - cdef void build_vertex(self, int link=1): + cdef int build_vertex(self, int link=1) except -1: if self.vertex_shader is not None: glDetachShader(self.program, self.vertex_shader.shader) self.vertex_shader = None @@ -475,8 +478,9 @@ cdef class Shader: glAttachShader(self.program, self.vertex_shader.shader) if link: self.link_program() + return 0 - cdef void build_fragment(self, int link=1): + cdef int build_fragment(self, int link=1) except -1: if self.fragment_shader is not None: glDetachShader(self.program, self.fragment_shader.shader) self.fragment_shader = None @@ -486,9 +490,9 @@ cdef class Shader: if link: self.link_program() - cdef void link_program(self): + cdef int link_program(self) except -1: if self.vertex_shader is None or self.fragment_shader is None: - return + return 0 # XXX to ensure that shader is ok, read error state right now. glGetError() @@ -503,6 +507,7 @@ cdef class Shader: self._success = 0 raise Exception('Shader didnt link, check info log.') self._success = 1 + return 0 cdef int is_linked(self): cdef GLint result = 0 diff --git a/kivy/graphics/stencil_instructions.pxd b/kivy/graphics/stencil_instructions.pxd index 1cf556e..4d33c44 100644 --- a/kivy/graphics/stencil_instructions.pxd +++ b/kivy/graphics/stencil_instructions.pxd @@ -1,11 +1,11 @@ from kivy.graphics.instructions cimport Instruction cdef class StencilPush(Instruction): - cdef void apply(self) + cdef int apply(self) except -1 cdef class StencilPop(Instruction): - cdef void apply(self) + cdef int apply(self) except -1 cdef class StencilUse(Instruction): cdef unsigned int _op - cdef void apply(self) + cdef int apply(self) except -1 cdef class StencilUnUse(Instruction): - cdef void apply(self) + cdef int apply(self) except -1 diff --git a/kivy/graphics/stencil_instructions.pyx b/kivy/graphics/stencil_instructions.pyx index 469a239..67cc709 100644 --- a/kivy/graphics/stencil_instructions.pyx +++ b/kivy/graphics/stencil_instructions.pyx @@ -126,7 +126,7 @@ cdef class StencilPush(Instruction): '''Push the stencil stack. See the module documentation for more information. ''' - cdef void apply(self): + cdef int apply(self) except -1: global _stencil_level, _stencil_in_push if _stencil_in_push: raise Exception('Cannot use StencilPush inside another ' @@ -146,11 +146,12 @@ cdef class StencilPush(Instruction): glStencilFunc(GL_ALWAYS, 0, 0) glStencilOp(GL_INCR, GL_INCR, GL_INCR) glColorMask(0, 0, 0, 0) + return 0 cdef class StencilPop(Instruction): '''Pop the stencil stack. See the module documentation for more information. ''' - cdef void apply(self): + cdef int apply(self) except -1: global _stencil_level, _stencil_in_push if _stencil_level == 0: raise Exception('Too much StencilPop (stack underflow)') @@ -159,10 +160,11 @@ cdef class StencilPop(Instruction): glColorMask(1, 1, 1, 1) if _stencil_level == 0: glDisable(GL_STENCIL_TEST) - return + return 0 # reset for previous glStencilFunc(GL_EQUAL, _stencil_level, 0xff) glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP) + return 0 cdef class StencilUse(Instruction): @@ -176,12 +178,13 @@ cdef class StencilUse(Instruction): else: self._op = GL_EQUAL - cdef void apply(self): + cdef int apply(self) except -1: global _stencil_in_push _stencil_in_push = 0 glColorMask(1, 1, 1, 1) glStencilFunc(self._op, _stencil_level, 0xff) glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP) + return 0 property func_op: '''Determine the stencil operation to use for glStencilFunc(). Can be @@ -207,7 +210,8 @@ cdef class StencilUse(Instruction): cdef class StencilUnUse(Instruction): '''Use current stencil buffer to unset the mask. ''' - cdef void apply(self): + cdef int apply(self) except -1: glStencilFunc(GL_ALWAYS, 0, 0) glStencilOp(GL_DECR, GL_DECR, GL_DECR) glColorMask(0, 0, 0, 0) + return 0 diff --git a/kivy/graphics/vertex_instructions_line.pxi b/kivy/graphics/vertex_instructions_line.pxi index b074a22..0c13132 100644 --- a/kivy/graphics/vertex_instructions_line.pxi +++ b/kivy/graphics/vertex_instructions_line.pxi @@ -174,10 +174,10 @@ cdef class Line(VertexInstruction): self._stencil_use = StencilUse(op='lequal') self._stencil_unuse = StencilUnUse() - cdef void apply(self): + cdef int apply(self) except -1: if self._width == 1.: VertexInstruction.apply(self) - return + return 0 cdef double alpha = getActiveContext()['color'][-1] self._use_stencil = alpha < 1 @@ -195,6 +195,7 @@ cdef class Line(VertexInstruction): self._stencil_pop.apply() else: VertexInstruction.apply(self) + return 0 cdef void build_legacy(self): cdef int i @@ -1238,9 +1239,9 @@ cdef class SmoothLine(Line): self.build_smooth() - cdef void apply(self): + cdef int apply(self) except -1: VertexInstruction.apply(self) - return + return 0 cdef void build_smooth(self): cdef: diff --git a/setup.py b/setup.py index 76d7c82..30cc091 100644 --- a/setup.py +++ b/setup.py @@ -31,12 +31,12 @@ def ver_equal(self, other): MIN_CYTHON_STRING = '0.20' MIN_CYTHON_VERSION = LooseVersion(MIN_CYTHON_STRING) -MAX_CYTHON_STRING = '0.21.2' +MAX_CYTHON_STRING = '0.22' MAX_CYTHON_VERSION = LooseVersion(MAX_CYTHON_STRING) CYTHON_UNSUPPORTED = ( - LooseVersion('0.22'), - LooseVersion('0.22.beta0'), - LooseVersion('0.22.alpha0'), + # LooseVersion('0.22'), + # LooseVersion('0.22.beta0'), + # LooseVersion('0.22.alpha0'), )