.TH "libcaca-canvas" 3caca "Mon Mar 25 2024 04:02:10" "Version 0.99.beta20" "libcaca" \" -*- nroff -*- .ad l .nh .SH NAME libcaca-canvas \- The libcaca canvas format (version 1) .PP All types are big endian\&. .PP .PP .nf struct { magic: uint8_t caca_header[2]; // "\\xCA\\xCA" uint8_t caca_file_type[2]; // "CV" canvas_header: uint32_t control_size; // Control size (canvas_data \- canvas_header) uint32_t data_size; // Data size (EOF \- canvas_data) uint16_t version; // Canvas format version // bit 0: set to 1 if canvas is compatible // with version 1 of the format // bits 1\-15: unused yet, must be 0 uint32_t frames; // Frame count uint16_t flags; // Feature flags // bits 0\-15: unused yet, must be 0 frame_info: struct { uint32_t width; // Frame width uint32_t height; // Frame height uint32_t duration; // Frame duration in milliseconds, 0 to // not specify a duration uint32_t attr; // Graphics context attribute int32_t cursor_x; // Cursor X coordinate int32_t cursor_y; // Cursor Y coordinate int32_t handle_x; // Handle X coordinate int32_t handle_y; // Handle Y coordinate } frame_list[frames]; control_extension_1: control_extension_2: \&.\&.\&. control_extension_N: \&.\&.\&. // reserved for future use canvas_data: uint8_t data[data_size]; // canvas data data_extension_1: data_extension_2: \&.\&.\&. data_extension_N: \&.\&.\&. // reserved for future use }; .fi .PP