a terminal based 2D pixel graphics system library
cexil uses a [y][x]
coordinate system for efficiency
this is inverse the standard [x][y]
coordinates of typical systems
to select a pixel at a position of x: 4
and y: 6
you would lookup the position as follows
renderer->pixels[6][4]
cexil_sprite
s are a collection of pixels/frames with an associated position/size attribute used for rendering a consistently referenced entitity
cexil_text
s contain a char array with an associated font and position attribute used for rendering text
cexil_font
s are sets of pixel frames mapped to specific characters within a character_set
cexil_character_set
s are used to map char values to an index specific to the type of cexil_character_set
cexil_size
is a structure containing height
and width
properties
cexil_position
is a structure containing x
and y
properties
cexil_collision
is a collection of helper functions which determine whether an intersection between two sets of cexil_position
+cexil_size
exists or could possibly exist
cexil_pixel_mapping
is used to map a grid of 3:2 pixels (y:x) into a specific character representing the on/off states of that grid for output/display printing/rendering
cexil_renderer
is where cexil_sprite
and cexil_text
get processed, rendered, and subsequently printed to the standard output stream
you can build the library on its own with the following
make
you can build all of the examples in one shot using
make examples
see examples/README.md for more details
to build the library + examples
make all
to clean up all the object files and resulting library file you can use
make clean
to clean the library + examples
make clean_all
©️ [copyleft|copyright]->{alic3dev(2025)}:[all_rights_reserved|all_lefts_reserved]