from libc.stdint cimport int8_t, int16_t, int32_t, int64_t, intptr_t from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t, uintptr_t cdef extern from *: ctypedef bint bool ctypedef struct va_list cdef extern from *: ctypedef struct Rect: float x; float y; float w; float h; ctypedef struct Color: uint8_t r; uint8_t g; uint8_t b; uint8_t a; cdef enum: Fill, Image, ClearScreen, ctypedef uint8_t DisplayItem_Tag; ctypedef struct Fill_Body: DisplayItem_Tag tag; Rect _0; Color _1; ctypedef struct Image_Body: DisplayItem_Tag tag; uint32_t id; Rect bounds; ctypedef union DisplayItem: DisplayItem_Tag tag; Fill_Body fill; Image_Body image; bool push_item(DisplayItem item);