loaders: PNM: Fix save_ascii_rgb888
[gfxprim/pasky.git] / gfxprim_config.py
blobb972c0e226138c3a86c31258877e87e7045b28fd
2 # gfxprim_config.py - module configuring GfxPrim code generation and
3 # known PixelTypes
7 # 2011 Tomas Gavenciak <gavento@ucw.cz>
8 # 2011-2013 Cyril Hrubis <metan@ucw.cz>
10 # This file is sourced by all the generating scripts.
11 # Moreover, the generated files are sourced by almost all Gfxprim sources,
12 # so a complete recompilation is required after any change.
15 # Declared pixel sizes:
16 PS_1BPP_LE = PixelSize(1, bit_endian=LE)
17 PS_1BPP_BE = PixelSize(1, bit_endian=BE)
18 PS_2BPP_LE = PixelSize(2, bit_endian=LE)
19 PS_2BPP_BE = PixelSize(2, bit_endian=BE)
20 PS_4BPP_LE = PixelSize(4, bit_endian=LE)
21 PS_4BPP_BE = PixelSize(4, bit_endian=BE)
22 PS_8BPP = PixelSize(8)
23 PS_16BPP = PixelSize(16)
24 PS_24BPP = PixelSize(24)
25 PS_32BPP = PixelSize(32)
26 # Experimental:
27 PS_18BPP_LE = PixelSize(18, bit_endian=LE)
29 config = GfxPrimConfig(
31 # C name and bit-size of the GP_pixel type
32 pixel_type = "uint32_t",
33 pixel_size = 32,
35 # List of pixel sizes (bpp), explicit on purpose
36 pixelsizes = [PS_1BPP_LE, PS_1BPP_BE, PS_2BPP_LE, PS_2BPP_BE, PS_4BPP_LE, PS_4BPP_BE,
37 PS_8BPP, PS_16BPP, PS_24BPP, PS_32BPP,
38 PS_18BPP_LE,
41 # List of PixelTypes, order defines the numbering.
42 # The "Undefined" type is added automatically.
43 pixeltypes = [
46 # Standard RGB types
48 PixelType(name='xRGB8888', pixelsize=PS_32BPP, chanslist=[
49 ('R', 16, 8),
50 ('G', 8, 8),
51 ('B', 0, 8)]),
53 PixelType(name='RGBA8888', pixelsize=PS_32BPP, chanslist=[
54 ('R', 24, 8),
55 ('G', 16, 8),
56 ('B', 8, 8),
57 ('A', 0, 8)]),
59 PixelType(name='RGB888', pixelsize=PS_24BPP, chanslist=[
60 ('R', 16, 8),
61 ('G', 8, 8),
62 ('B', 0, 8)]),
64 PixelType(name='BGR888', pixelsize=PS_24BPP, chanslist=[
65 ('B', 16, 8),
66 ('G', 8, 8),
67 ('R', 0, 8)]),
69 PixelType(name='RGB555', pixelsize=PS_16BPP, chanslist=[
70 ('R', 10, 5),
71 ('G', 5, 5),
72 ('B', 0, 5)]),
74 PixelType(name='RGB565', pixelsize=PS_16BPP, chanslist=[
75 ('R', 11, 5),
76 ('G', 5, 6),
77 ('B', 0, 5)]),
79 PixelType(name='RGB666', pixelsize=PS_18BPP_LE, chanslist=[
80 ('R', 12, 6),
81 ('G', 6, 6),
82 ('B', 0, 6)]),
84 PixelType(name='RGB332', pixelsize=PS_8BPP, chanslist=[
85 ('R', 5, 3),
86 ('G', 2, 3),
87 ('B', 0, 2)]),
90 # CMYK
92 PixelType(name="CMYK8888", pixelsize=PS_32BPP, chanslist=[
93 ('K', 24, 8),
94 ('Y', 16, 8),
95 ('M', 8, 8),
96 ('C', 0, 8)]),
99 # Palette types
101 PixelType(name='P2', pixelsize=PS_2BPP_LE, chanslist=[
102 ('P', 0, 2)]),
104 PixelType(name='P4', pixelsize=PS_4BPP_LE, chanslist=[
105 ('P', 0, 4)]),
107 PixelType(name='P8', pixelsize=PS_8BPP, chanslist=[
108 ('P', 0, 8)]),
111 # Gray-only pixel types
113 PixelType(name='G1', pixelsize=PS_1BPP_LE, chanslist=[
114 ('V', 0, 1)]),
116 PixelType(name='G2', pixelsize=PS_2BPP_LE, chanslist=[
117 ('V', 0, 2)]),
119 PixelType(name='G4', pixelsize=PS_4BPP_LE, chanslist=[
120 ('V', 0, 4)]),
122 PixelType(name='G8', pixelsize=PS_8BPP, chanslist=[
123 ('V', 0, 8)]),
125 PixelType(name='G16', pixelsize=PS_16BPP, chanslist=[
126 ('V', 0, 16)]),