[1357] | 1 | /* $Id: canvas.dox 1879 2007-11-04 11:59:54Z sam $ */ |
---|
[804] | 2 | |
---|
[1879] | 3 | /** \page libcaca-canvas The libcaca canvas format (version 1) |
---|
[804] | 4 | |
---|
[1357] | 5 | All types are big endian. |
---|
[804] | 6 | |
---|
[1357] | 7 | \code |
---|
| 8 | struct |
---|
[1283] | 9 | { |
---|
[1357] | 10 | magic: |
---|
| 11 | uint8_t caca_header[2]; // "\xCA\xCA" |
---|
| 12 | uint8_t caca_file_type[2]; // "CV" |
---|
[1283] | 13 | |
---|
[1357] | 14 | canvas_header: |
---|
| 15 | uint32_t control_size; // Control size (canvas_data - canvas_header) |
---|
| 16 | uint32_t data_size; // Data size (EOF - canvas_data) |
---|
[1283] | 17 | |
---|
[1357] | 18 | uint16_t version; // Canvas format version |
---|
| 19 | // bit 0: set to 1 if canvas is compatible |
---|
| 20 | // with version 1 of the format |
---|
| 21 | // bits 1-15: unused yet, must be 0 |
---|
[804] | 22 | |
---|
[1357] | 23 | uint32_t frames; // Frame count |
---|
[804] | 24 | |
---|
[1357] | 25 | uint16_t flags; // Feature flags |
---|
| 26 | // bits 0-15: unused yet, must be 0 |
---|
[920] | 27 | |
---|
[1357] | 28 | frame_info: |
---|
| 29 | struct |
---|
| 30 | { |
---|
| 31 | uint32_t width; // Frame width |
---|
| 32 | uint32_t height; // Frame height |
---|
| 33 | uint32_t duration; // Frame duration in milliseconds, 0 to |
---|
| 34 | // not specify a duration |
---|
| 35 | uint32_t attr; // Graphics context attribute |
---|
| 36 | int32_t cursor_x; // Cursor X coordinate |
---|
| 37 | int32_t cursor_y; // Cursor Y coordinate |
---|
| 38 | int32_t handle_x; // Handle X coordinate |
---|
| 39 | int32_t handle_y; // Handle Y coordinate |
---|
| 40 | } |
---|
| 41 | frame_list[frames]; |
---|
[804] | 42 | |
---|
[1357] | 43 | control_extension_1: |
---|
| 44 | control_extension_2: |
---|
| 45 | ... |
---|
| 46 | control_extension_N: |
---|
| 47 | ... // reserved for future use |
---|
[804] | 48 | |
---|
[1357] | 49 | canvas_data: |
---|
| 50 | uint8_t data[data_size]; // canvas data |
---|
[1302] | 51 | |
---|
[1357] | 52 | data_extension_1: |
---|
| 53 | data_extension_2: |
---|
| 54 | ... |
---|
| 55 | data_extension_N: |
---|
| 56 | ... // reserved for future use |
---|
| 57 | }; |
---|
| 58 | \endcode |
---|
[1302] | 59 | |
---|
[1357] | 60 | */ |
---|