#ifndef ASE_H #define ASE_H struct ase_tag { struct string name; u32 start; u32 end; struct ase_tag *next; }; struct ase_frame { u32 index; f64 duration; struct clip_rect clip; struct ase_frame *next; }; struct ase_decode_image_result { struct image_rgba image; b32 valid; struct string error_msg; }; struct ase_decode_sheet_result { struct v2 image_size; struct v2 frame_size; u32 num_frames; u32 num_tags; struct ase_frame *frame_head; struct ase_tag *tag_head; b32 valid; struct string error_msg; }; struct ase_decode_image_result ase_decode_image(struct arena *arena, struct buffer encoded); struct ase_decode_sheet_result ase_decode_sheet(struct arena *arena, struct buffer encoded); #endif