/* * board3d.h - Lite Blue's 3D board from a pre-rendered atlas (see board3d.c). * Claude Opus 5.5, October 2026. */ #ifndef LITEBLUE_BOARD3D_H #define LITEBLUE_BOARD3D_H #include int b3_open(const char *path); /* 0 on success */ int b3_width(void); int b3_height(void); /* pc[sq] colour (0 white, 1 black) and ptype[sq] type (0 empty, 1..6) for * squares 0..63 (a1 = 0); tints[sq] 0 none, 1 last move, 2 selected, * 3 destination. b3_compose builds the picture (0 on success; nothing is * written), b3_write_gif writes it. */ int b3_compose(const int *pc, const int *ptype, int black, const unsigned char *tints); void b3_write_gif(FILE *out); /* Image-map shapes for the square drawn at picture position pos (White's * coordinates): 4 corners; and a piece's outline (returns the point count, * 2 * NLEV, or 0). xy holds x, y pairs in pixels. */ void b3_square(int pos, int *xy); int b3_outline(int colour, int type, int pos, int *xy); #endif