view pytouhou/game/text.pxd @ 524:7f016dfbdfb1

Make vector a struct, allocate it directly on the stack, and thus pass it by copy, which is much less expensive than a python allocation.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Wed, 18 Dec 2013 18:15:40 +0100
parents 2276229282fd
children 53fa73932e9a
line wrap: on
line source

from pytouhou.game.element cimport Element
from pytouhou.game.sprite cimport Sprite
from pytouhou.utils.interpolator cimport Interpolator

cdef class Glyph(Element):
    pass


cdef class Widget(Element):
    cdef public object update
    cdef public bint changed

    cdef unsigned long frame
    cdef object back_anm

    #def update(self)


cdef class GlyphCollection(Widget):
    cdef Sprite ref_sprite
    cdef object anm
    cdef list glyphes
    cdef long xspacing

    cpdef set_length(self, unsigned long length)
    cpdef set_sprites(self, list sprite_indexes)
    cpdef set_color(self, text=*, color=*)
    cpdef set_alpha(self, unsigned char alpha)


cdef class Text(GlyphCollection):
    cdef bytes text
    cdef unsigned long timeout, duration, start
    cdef long shift
    cdef Interpolator fade_interpolator
    cdef unsigned char alpha

    cpdef set_text(self, bytes text)
    #def timeout_update(self)
    #def move_timeout_update(self)
    #def fadeout_timeout_update(self)
    cdef void fade(self, unsigned long duration, unsigned char alpha, formula=*) except *
    cpdef set_timeout(self, unsigned long timeout, str effect=*, unsigned long duration=*, unsigned long start=*)


cdef class Counter(GlyphCollection):
    cdef long value

    cpdef set_value(self, long value)


cdef class Gauge(Element):
    cdef public long value, max_length, maximum

    cpdef set_value(self, long value)
    cpdef update(self)


cdef class NativeText(Element):
    cdef public object update

    cdef unicode text
    cdef long width, height
    cdef unsigned char alpha
    cdef bint shadow
    cdef bytes align #TODO: use a proper enum.
    cdef unsigned long frame, timeout, duration, start
    cdef double to[2], end[2]
    cdef list gradient
    cdef Interpolator fade_interpolator, offset_interpolator
    cdef object texture

    #def normal_update(self)
    #def timeout_update(self)
    #def move_timeout_update(self)
    #def move_ex_timeout_update(self)
    #def fadeout_timeout_update(self)

    cdef void fade(self, unsigned long duration, unsigned char alpha, formula=*) except *
    cdef void move_in(self, unsigned long duration, double x, double y, formula=*) except *
    cpdef set_timeout(self, unsigned long timeout, str effect=*, unsigned long duration=*, unsigned long start=*, to=*, end=*)