lib/gif/src/decode/model.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 pub const signature = [4]u8{ 'G', 'I', 'F', '8' };
2
3 pub const DecodeError = error{
4 InvalidSignature,
5 InvalidDescriptor,
6 MissingColorTable,
7 TruncatedInput,
8 NoFrames,
9 };
10
11 pub const Exhaustion = error{
12 CanvasPixelCapacityExceeded,
13 FramePixelCapacityExceeded,
14 FrameCapacityExceeded,
15 CompressedByteCapacityExceeded,
16 RetainedRgba8CapacityExceeded,
17 DecodeStorageInUse,
18 DecodeInputMismatch,
19 };
20
21 pub const Frame = struct {
22 rgba8: []u8,
23 delay_cs: u16,
24 };
25
26 pub const Animation = struct {
27 width: u32,
28 height: u32,
29 frames: []Frame,
30 loop_count: ?u16,
31 };
32
33 pub const Disposal = enum(u3) {
34 unspecified = 0,
35 keep = 1,
36 background = 2,
37 previous = 3,
38 _,
39 };
40
41 pub const Control = struct {
42 disposal: Disposal = .unspecified,
43 delay_cs: u16 = 0,
44 transparent_index: ?u8 = null,
45 };