59 lines
1.6 KiB
Plaintext
59 lines
1.6 KiB
Plaintext
/** \page libcaca-canvas The libcaca canvas format (version 1)
|
|
|
|
All types are big endian.
|
|
|
|
\code
|
|
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
|
|
};
|
|
\endcode
|
|
|
|
*/
|