You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.7 KiB
Cython
55 lines
1.7 KiB
Cython
1 year ago
|
# distutils: language = c++
|
||
|
|
||
|
from libcpp cimport bool
|
||
|
from libc.stdint cimport uint8_t, uint32_t
|
||
|
|
||
|
cimport core
|
||
|
|
||
|
cdef class Color:
|
||
|
def __init__(self, uint8_t red = 0, uint8_t green = 0, uint8_t blue = 0):
|
||
|
self.__color.r = red
|
||
|
self.__color.g = green
|
||
|
self.__color.b = blue
|
||
|
|
||
|
property red:
|
||
|
def __get__(self): return self.__color.r
|
||
|
def __set__(self, uint8_t value): self.__color.r = value
|
||
|
|
||
|
property green:
|
||
|
def __get__(self): return self.__color.g
|
||
|
def __set__(self, uint8_t value): self.__color.g = value
|
||
|
|
||
|
property blue:
|
||
|
def __get__(self): return self.__color.b
|
||
|
def __set__(self, uint8_t value): self.__color.b = value
|
||
|
|
||
|
cdef class Font:
|
||
|
def CharacterWidth(self, uint32_t char):
|
||
|
return self.__font.CharacterWidth(char)
|
||
|
|
||
|
def LoadFont(self, file):
|
||
|
if (not self.__font.LoadFont(file.encode('utf-8'))):
|
||
|
raise Exception("Couldn't load font " + file)
|
||
|
|
||
|
def DrawGlyph(self, core.Canvas c, int x, int y, Color color, uint32_t char):
|
||
|
return self.__font.DrawGlyph(c.__getCanvas(), x, y, color.__color, char)
|
||
|
|
||
|
property height:
|
||
|
def __get__(self): return self.__font.height()
|
||
|
|
||
|
property baseline:
|
||
|
def __get__(self): return self.__font.baseline()
|
||
|
|
||
|
def DrawText(core.Canvas c, Font f, int x, int y, Color color, text):
|
||
|
return cppinc.DrawText(c.__getCanvas(), f.__font, x, y, color.__color, text.encode('utf-8'))
|
||
|
|
||
|
def DrawCircle(core.Canvas c, int x, int y, int r, Color color):
|
||
|
cppinc.DrawCircle(c.__getCanvas(), x, y, r, color.__color)
|
||
|
|
||
|
def DrawLine(core.Canvas c, int x1, int y1, int x2, int y2, Color color):
|
||
|
cppinc.DrawLine(c.__getCanvas(), x1, y1, x2, y2, color.__color)
|
||
|
|
||
|
# Local Variables:
|
||
|
# mode: python
|
||
|
# End:
|