OLD | NEW |
---|---|
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "xfa/include/fxgraphics/fx_graphics.h" | 7 #include "xfa/fxgraphics/include/cfx_graphics.h" |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
11 #include "xfa/fxgraphics/fx_path_generator.h" | 11 #include "xfa/fxgraphics/cagg_graphics.h" |
12 #include "xfa/fxgraphics/pre.h" | 12 #include "xfa/fxgraphics/cfx_color.h" |
13 #include "xfa/fxgraphics/cfx_path.h" | |
14 #include "xfa/fxgraphics/cfx_path_generator.h" | |
15 #include "xfa/fxgraphics/cfx_pattern.h" | |
16 #include "xfa/fxgraphics/cfx_shading.h" | |
17 | |
18 namespace { | |
19 | |
20 enum { | |
21 FX_CONTEXT_None = 0, | |
22 FX_CONTEXT_Device, | |
23 }; | |
24 | |
25 #define FX_HATCHSTYLE_Total 53 | |
26 | |
27 struct FX_HATCHDATA { | |
28 int32_t width; | |
29 int32_t height; | |
30 uint8_t maskBits[64]; | |
31 }; | |
32 | |
33 static const FX_HATCHDATA hatchBitmapData[FX_HATCHSTYLE_Total] = { | |
Tom Sepez
2016/03/16 17:08:52
static not needed since namespaced.
dsinclair
2016/03/16 19:21:07
Done.
| |
34 {16, | |
35 16, | |
36 { | |
37 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
38 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
39 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
40 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
41 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
42 0x00, 0x00, 0x00, 0x00, | |
43 }}, | |
44 {16, | |
45 16, | |
46 { | |
47 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
48 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
49 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
50 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
51 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
52 0x80, 0x80, 0x00, 0x00, | |
53 }}, | |
54 {16, | |
55 16, | |
56 { | |
57 0x80, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, | |
58 0x10, 0x10, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, | |
59 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
60 0x40, 0x40, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, | |
61 0x08, 0x08, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, | |
62 0x01, 0x01, 0x00, 0x00, | |
63 }}, | |
64 {16, | |
65 16, | |
66 { | |
67 0x01, 0x01, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, | |
68 0x08, 0x08, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, | |
69 0x40, 0x40, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, | |
70 0x02, 0x02, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, | |
71 0x10, 0x10, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, | |
72 0x80, 0x80, 0x00, 0x00, | |
73 }}, | |
74 {16, | |
75 16, | |
76 { | |
77 0xff, 0xff, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
78 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
79 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
80 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
81 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
82 0x80, 0x80, 0x00, 0x00, | |
83 }}, | |
84 {16, | |
85 16, | |
86 { | |
87 0x81, 0x81, 0x00, 0x00, 0x42, 0x42, 0x00, 0x00, 0x24, 0x24, 0x00, 0x00, | |
88 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x24, 0x24, 0x00, 0x00, | |
89 0x42, 0x42, 0x00, 0x00, 0x81, 0x81, 0x00, 0x00, 0x81, 0x81, 0x00, 0x00, | |
90 0x42, 0x42, 0x00, 0x00, 0x24, 0x24, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, | |
91 0x18, 0x18, 0x00, 0x00, 0x24, 0x24, 0x00, 0x00, 0x42, 0x42, 0x00, 0x00, | |
92 0x81, 0x81, 0x00, 0x00, | |
93 }}, | |
94 {16, | |
95 16, | |
96 { | |
97 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
98 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
99 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
100 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
101 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
102 0x00, 0x00, 0x00, 0x00, | |
103 }}, | |
104 {16, | |
105 16, | |
106 { | |
107 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, | |
108 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
109 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
110 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
111 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, | |
112 0x00, 0x00, 0x00, 0x00, | |
113 }}, | |
114 {16, | |
115 16, | |
116 { | |
117 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, | |
118 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
119 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
120 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
121 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, | |
122 0x00, 0x00, 0x00, 0x00, | |
123 }}, | |
124 {16, | |
125 16, | |
126 { | |
127 0x88, 0x88, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
128 0x22, 0x22, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, | |
129 0x88, 0x88, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
130 0x22, 0x22, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, | |
131 0x88, 0x88, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
132 0x22, 0x22, 0x00, 0x00, | |
133 }}, | |
134 {16, | |
135 16, | |
136 { | |
137 0xaa, 0xaa, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, | |
138 0x11, 0x11, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, | |
139 0xaa, 0xaa, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, | |
140 0x44, 0x44, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, | |
141 0xaa, 0xaa, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, | |
142 0x11, 0x11, 0x00, 0x00, | |
143 }}, | |
144 {16, | |
145 16, | |
146 { | |
147 0xaa, 0xaa, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, | |
148 0x51, 0x51, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, | |
149 0xaa, 0xaa, 0x00, 0x00, 0x15, 0x15, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, | |
150 0x55, 0x55, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, 0x51, 0x51, 0x00, 0x00, | |
151 0xaa, 0xaa, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, | |
152 0x15, 0x15, 0x00, 0x00, | |
153 }}, | |
154 {16, | |
155 16, | |
156 { | |
157 0xaa, 0xaa, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, | |
158 0x55, 0x55, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, | |
159 0xaa, 0xaa, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, | |
160 0x55, 0x55, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, | |
161 0xaa, 0xaa, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, | |
162 0x55, 0x55, 0x00, 0x00, | |
163 }}, | |
164 {16, | |
165 16, | |
166 { | |
167 0xee, 0xee, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0xbb, 0xbb, 0x00, 0x00, | |
168 0x55, 0x55, 0x00, 0x00, 0xee, 0xee, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, | |
169 0xbb, 0xbb, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0xee, 0xee, 0x00, 0x00, | |
170 0x55, 0x55, 0x00, 0x00, 0xbb, 0xbb, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, | |
171 0xee, 0xee, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0xbb, 0xbb, 0x00, 0x00, | |
172 0x55, 0x55, 0x00, 0x00, | |
173 }}, | |
174 {16, | |
175 16, | |
176 { | |
177 0x77, 0x77, 0x00, 0x00, 0xdd, 0xdd, 0x00, 0x00, 0x77, 0x77, 0x00, 0x00, | |
178 0xdd, 0xdd, 0x00, 0x00, 0x77, 0x77, 0x00, 0x00, 0xdd, 0xdd, 0x00, 0x00, | |
179 0x77, 0x77, 0x00, 0x00, 0xdd, 0xdd, 0x00, 0x00, 0x77, 0x77, 0x00, 0x00, | |
180 0xdd, 0xdd, 0x00, 0x00, 0x77, 0x77, 0x00, 0x00, 0xdd, 0xdd, 0x00, 0x00, | |
181 0x77, 0x77, 0x00, 0x00, 0xdd, 0xdd, 0x00, 0x00, 0x77, 0x77, 0x00, 0x00, | |
182 0xdd, 0xdd, 0x00, 0x00, | |
183 }}, | |
184 {16, | |
185 16, | |
186 { | |
187 0x77, 0x77, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xdd, 0xdd, 0x00, 0x00, | |
188 0xff, 0xff, 0x00, 0x00, 0x77, 0x77, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
189 0xdd, 0xdd, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x77, 0x77, 0x00, 0x00, | |
190 0xff, 0xff, 0x00, 0x00, 0xdd, 0xdd, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
191 0x77, 0x77, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xdd, 0xdd, 0x00, 0x00, | |
192 0xff, 0xff, 0x00, 0x00, | |
193 }}, | |
194 {16, | |
195 16, | |
196 { | |
197 0xef, 0xef, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0x00, | |
198 0xff, 0xff, 0x00, 0x00, 0xef, 0xef, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
199 0xfe, 0xfe, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xef, 0xef, 0x00, 0x00, | |
200 0xff, 0xff, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
201 0xef, 0xef, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0x00, | |
202 0xff, 0xff, 0x00, 0x00, | |
203 }}, | |
204 {16, | |
205 16, | |
206 { | |
207 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
208 0xf7, 0xf7, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
209 0xff, 0xff, 0x00, 0x00, 0x7f, 0x7f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
210 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xf7, 0xf7, 0x00, 0x00, | |
211 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
212 0x7f, 0x7f, 0x00, 0x00, | |
213 }}, | |
214 {16, | |
215 16, | |
216 { | |
217 0x88, 0x88, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, | |
218 0x11, 0x11, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, | |
219 0x22, 0x22, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
220 0x44, 0x44, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, | |
221 0x88, 0x88, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, | |
222 0x11, 0x11, 0x00, 0x00, | |
223 }}, | |
224 {16, | |
225 16, | |
226 { | |
227 0x11, 0x11, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, | |
228 0x88, 0x88, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, | |
229 0x44, 0x44, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, | |
230 0x22, 0x22, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
231 0x11, 0x11, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, | |
232 0x88, 0x88, 0x00, 0x00, | |
233 }}, | |
234 {16, | |
235 16, | |
236 { | |
237 0xcc, 0xcc, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x33, 0x33, 0x00, 0x00, | |
238 0x99, 0x99, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, | |
239 0x33, 0x33, 0x00, 0x00, 0x99, 0x99, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, | |
240 0x66, 0x66, 0x00, 0x00, 0x33, 0x33, 0x00, 0x00, 0x99, 0x99, 0x00, 0x00, | |
241 0xcc, 0xcc, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x33, 0x33, 0x00, 0x00, | |
242 0x99, 0x99, 0x00, 0x00, | |
243 }}, | |
244 {16, | |
245 16, | |
246 { | |
247 0x33, 0x33, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, | |
248 0x99, 0x99, 0x00, 0x00, 0x33, 0x33, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, | |
249 0xcc, 0xcc, 0x00, 0x00, 0x99, 0x99, 0x00, 0x00, 0x33, 0x33, 0x00, 0x00, | |
250 0x66, 0x66, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, 0x99, 0x99, 0x00, 0x00, | |
251 0x33, 0x33, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, | |
252 0x99, 0x99, 0x00, 0x00, | |
253 }}, | |
254 {16, | |
255 16, | |
256 { | |
257 0xc1, 0xc1, 0x00, 0x00, 0xe0, 0xe0, 0x00, 0x00, 0x70, 0x70, 0x00, 0x00, | |
258 0x38, 0x38, 0x00, 0x00, 0x1c, 0x1c, 0x00, 0x00, 0x0e, 0x0e, 0x00, 0x00, | |
259 0x07, 0x07, 0x00, 0x00, 0x83, 0x83, 0x00, 0x00, 0xc1, 0xc1, 0x00, 0x00, | |
260 0xe0, 0xe0, 0x00, 0x00, 0x70, 0x70, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, | |
261 0x1c, 0x1c, 0x00, 0x00, 0x0e, 0x0e, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, | |
262 0x83, 0x83, 0x00, 0x00, | |
263 }}, | |
264 {16, | |
265 16, | |
266 { | |
267 0x83, 0x83, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x0e, 0x0e, 0x00, 0x00, | |
268 0x1c, 0x1c, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x70, 0x70, 0x00, 0x00, | |
269 0xe0, 0xe0, 0x00, 0x00, 0xc1, 0xc1, 0x00, 0x00, 0x83, 0x83, 0x00, 0x00, | |
270 0x07, 0x07, 0x00, 0x00, 0x0e, 0x0e, 0x00, 0x00, 0x1c, 0x1c, 0x00, 0x00, | |
271 0x38, 0x38, 0x00, 0x00, 0x70, 0x70, 0x00, 0x00, 0xe0, 0xe0, 0x00, 0x00, | |
272 0xc1, 0xc1, 0x00, 0x00, | |
273 }}, | |
274 {16, | |
275 16, | |
276 { | |
277 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
278 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
279 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
280 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
281 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
282 0x88, 0x88, 0x00, 0x00, | |
283 }}, | |
284 {16, | |
285 16, | |
286 { | |
287 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
288 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
289 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
290 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
291 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
292 0x00, 0x00, 0x00, 0x00, | |
293 }}, | |
294 {16, | |
295 16, | |
296 { | |
297 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, | |
298 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, | |
299 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, | |
300 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, | |
301 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, | |
302 0x55, 0x55, 0x00, 0x00, | |
303 }}, | |
304 {16, | |
305 16, | |
306 { | |
307 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
308 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
309 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
310 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
311 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
312 0x00, 0x00, 0x00, 0x00, | |
313 }}, | |
314 {16, | |
315 16, | |
316 { | |
317 0xcc, 0xcc, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, | |
318 0xcc, 0xcc, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, | |
319 0xcc, 0xcc, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, | |
320 0xcc, 0xcc, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, | |
321 0xcc, 0xcc, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, 0xcc, 0xcc, 0x00, 0x00, | |
322 0xcc, 0xcc, 0x00, 0x00, | |
323 }}, | |
324 {16, | |
325 16, | |
326 { | |
327 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
328 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
329 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
330 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
331 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
332 0x00, 0x00, 0x00, 0x00, | |
333 }}, | |
334 {16, | |
335 16, | |
336 { | |
337 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
338 0x44, 0x44, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, | |
339 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
340 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, | |
341 0x22, 0x22, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
342 0x00, 0x00, 0x00, 0x00, | |
343 }}, | |
344 {16, | |
345 16, | |
346 { | |
347 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, | |
348 0x22, 0x22, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
349 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
350 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, | |
351 0x44, 0x44, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
352 0x00, 0x00, 0x00, 0x00, | |
353 }}, | |
354 {16, | |
355 16, | |
356 { | |
357 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
358 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
359 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, | |
360 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
361 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
362 0x00, 0x00, 0x00, 0x00, | |
363 }}, | |
364 {16, | |
365 16, | |
366 { | |
367 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
368 0x80, 0x80, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, | |
369 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
370 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
371 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, | |
372 0x08, 0x08, 0x00, 0x00, | |
373 }}, | |
374 {16, | |
375 16, | |
376 { | |
377 0x80, 0x80, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, | |
378 0x02, 0x02, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, | |
379 0x20, 0x20, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
380 0x08, 0x08, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, | |
381 0x10, 0x10, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, | |
382 0x04, 0x04, 0x00, 0x00, | |
383 }}, | |
384 {16, | |
385 16, | |
386 { | |
387 0xb1, 0xb1, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, | |
388 0x1b, 0x1b, 0x00, 0x00, 0xd8, 0xd8, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, | |
389 0x0c, 0x0c, 0x00, 0x00, 0x8d, 0x8d, 0x00, 0x00, 0xb1, 0xb1, 0x00, 0x00, | |
390 0x30, 0x30, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x1b, 0x1b, 0x00, 0x00, | |
391 0xd8, 0xd8, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, | |
392 0x8d, 0x8d, 0x00, 0x00, | |
393 }}, | |
394 {16, | |
395 16, | |
396 { | |
397 0x81, 0x81, 0x00, 0x00, 0x42, 0x42, 0x00, 0x00, 0x24, 0x24, 0x00, 0x00, | |
398 0x18, 0x18, 0x00, 0x00, 0x81, 0x81, 0x00, 0x00, 0x42, 0x42, 0x00, 0x00, | |
399 0x24, 0x24, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x81, 0x81, 0x00, 0x00, | |
400 0x42, 0x42, 0x00, 0x00, 0x24, 0x24, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, | |
401 0x81, 0x81, 0x00, 0x00, 0x42, 0x42, 0x00, 0x00, 0x24, 0x24, 0x00, 0x00, | |
402 0x18, 0x18, 0x00, 0x00, | |
403 }}, | |
404 {16, | |
405 16, | |
406 { | |
407 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x25, 0x25, 0x00, 0x00, | |
408 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, | |
409 0x25, 0x25, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
410 0x18, 0x18, 0x00, 0x00, 0x25, 0x25, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, | |
411 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x25, 0x25, 0x00, 0x00, | |
412 0xc0, 0xc0, 0x00, 0x00, | |
413 }}, | |
414 {16, | |
415 16, | |
416 { | |
417 0x01, 0x01, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, | |
418 0x08, 0x08, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x24, 0x24, 0x00, 0x00, | |
419 0x42, 0x42, 0x00, 0x00, 0x81, 0x81, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, | |
420 0x02, 0x02, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, | |
421 0x18, 0x18, 0x00, 0x00, 0x24, 0x24, 0x00, 0x00, 0x42, 0x42, 0x00, 0x00, | |
422 0x81, 0x81, 0x00, 0x00, | |
423 }}, | |
424 {16, | |
425 16, | |
426 { | |
427 0xff, 0xff, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
428 0x80, 0x80, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, | |
429 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
430 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
431 0xff, 0xff, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, | |
432 0x08, 0x08, 0x00, 0x00, | |
433 }}, | |
434 {16, | |
435 16, | |
436 { | |
437 0x88, 0x88, 0x00, 0x00, 0x54, 0x54, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, | |
438 0x45, 0x45, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x14, 0x14, 0x00, 0x00, | |
439 0x22, 0x22, 0x00, 0x00, 0x51, 0x51, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
440 0x54, 0x54, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x45, 0x45, 0x00, 0x00, | |
441 0x88, 0x88, 0x00, 0x00, 0x14, 0x14, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, | |
442 0x51, 0x51, 0x00, 0x00, | |
443 }}, | |
444 {16, | |
445 16, | |
446 { | |
447 0xaa, 0xaa, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, | |
448 0x55, 0x55, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, | |
449 0xf0, 0xf0, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, | |
450 0x55, 0x55, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, | |
451 0xf0, 0xf0, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, | |
452 0xf0, 0xf0, 0x00, 0x00, | |
453 }}, | |
454 {16, | |
455 16, | |
456 { | |
457 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, | |
458 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
459 0x01, 0x01, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
460 0x10, 0x10, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, | |
461 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, | |
462 0x80, 0x80, 0x00, 0x00, | |
463 }}, | |
464 {16, | |
465 16, | |
466 { | |
467 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
468 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
469 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, | |
470 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
471 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
472 0x00, 0x00, 0x00, 0x00, | |
473 }}, | |
474 {16, | |
475 16, | |
476 { | |
477 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, | |
478 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
479 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, | |
480 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
481 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, | |
482 0x00, 0x00, 0x00, 0x00, | |
483 }}, | |
484 {16, | |
485 16, | |
486 { | |
487 0x03, 0x03, 0x00, 0x00, 0x84, 0x84, 0x00, 0x00, 0x48, 0x48, 0x00, 0x00, | |
488 0x30, 0x30, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, | |
489 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, | |
490 0x84, 0x84, 0x00, 0x00, 0x48, 0x48, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, | |
491 0x0c, 0x0c, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, | |
492 0x01, 0x01, 0x00, 0x00, | |
493 }}, | |
494 {16, | |
495 16, | |
496 { | |
497 0xff, 0xff, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
498 0x99, 0x99, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, | |
499 0xff, 0xff, 0x00, 0x00, 0x99, 0x99, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
500 0x66, 0x66, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x99, 0x99, 0x00, 0x00, | |
501 0xff, 0xff, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
502 0x99, 0x99, 0x00, 0x00, | |
503 }}, | |
504 {16, | |
505 16, | |
506 { | |
507 0x77, 0x77, 0x00, 0x00, 0x89, 0x89, 0x00, 0x00, 0x8f, 0x8f, 0x00, 0x00, | |
508 0x8f, 0x8f, 0x00, 0x00, 0x77, 0x77, 0x00, 0x00, 0x98, 0x98, 0x00, 0x00, | |
509 0xf8, 0xf8, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x77, 0x77, 0x00, 0x00, | |
510 0x89, 0x89, 0x00, 0x00, 0x8f, 0x8f, 0x00, 0x00, 0x8f, 0x8f, 0x00, 0x00, | |
511 0x77, 0x77, 0x00, 0x00, 0x98, 0x98, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, | |
512 0xf8, 0xf8, 0x00, 0x00, | |
513 }}, | |
514 {16, | |
515 16, | |
516 { | |
517 0xff, 0xff, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
518 0x88, 0x88, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
519 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, | |
520 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
521 0xff, 0xff, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, 0x88, 0x88, 0x00, 0x00, | |
522 0x88, 0x88, 0x00, 0x00, | |
523 }}, | |
524 {16, | |
525 16, | |
526 { | |
527 0x99, 0x99, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, | |
528 0x99, 0x99, 0x00, 0x00, 0x99, 0x99, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, | |
529 0x66, 0x66, 0x00, 0x00, 0x99, 0x99, 0x00, 0x00, 0x99, 0x99, 0x00, 0x00, | |
530 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x99, 0x99, 0x00, 0x00, | |
531 0x99, 0x99, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, | |
532 0x99, 0x99, 0x00, 0x00, | |
533 }}, | |
534 {16, | |
535 16, | |
536 { | |
537 0xf0, 0xf0, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, | |
538 0xf0, 0xf0, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, | |
539 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, | |
540 0xf0, 0xf0, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, | |
541 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, | |
542 0x0f, 0x0f, 0x00, 0x00, | |
543 }}, | |
544 {16, | |
545 16, | |
546 { | |
547 0x82, 0x82, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0x28, 0x28, 0x00, 0x00, | |
548 0x10, 0x10, 0x00, 0x00, 0x28, 0x28, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, | |
549 0x82, 0x82, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x82, 0x82, 0x00, 0x00, | |
550 0x44, 0x44, 0x00, 0x00, 0x28, 0x28, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, | |
551 0x28, 0x28, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0x82, 0x82, 0x00, 0x00, | |
552 0x01, 0x01, 0x00, 0x00, | |
553 }}, | |
554 {16, | |
555 16, | |
556 { | |
557 0x10, 0x10, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x7c, 0x7c, 0x00, 0x00, | |
558 0xfe, 0xfe, 0x00, 0x00, 0x7c, 0x7c, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, | |
559 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, | |
560 0x38, 0x38, 0x00, 0x00, 0x7c, 0x7c, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0x00, | |
561 0x7c, 0x7c, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, | |
562 0x00, 0x00, 0x00, 0x00, | |
563 }}, | |
564 }; | |
565 | |
566 } // namespace | |
13 | 567 |
14 CFX_Graphics::CFX_Graphics() | 568 CFX_Graphics::CFX_Graphics() |
15 : m_renderDevice(nullptr), m_aggGraphics(nullptr) {} | 569 : m_renderDevice(nullptr), m_aggGraphics(nullptr) {} |
16 | 570 |
17 FX_ERR CFX_Graphics::Create(CFX_RenderDevice* renderDevice, | 571 FX_ERR CFX_Graphics::Create(CFX_RenderDevice* renderDevice, |
18 FX_BOOL isAntialiasing) { | 572 FX_BOOL isAntialiasing) { |
19 if (!renderDevice) | 573 if (!renderDevice) |
20 return FX_ERR_Parameter_Invalid; | 574 return FX_ERR_Parameter_Invalid; |
21 if (m_type != FX_CONTEXT_None) | 575 if (m_type != FX_CONTEXT_None) |
22 return FX_ERR_Property_Invalid; | 576 return FX_ERR_Property_Invalid; |
(...skipping 1000 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1023 CTM = other.CTM; | 1577 CTM = other.CTM; |
1024 isActOnDash = other.isActOnDash; | 1578 isActOnDash = other.isActOnDash; |
1025 strokeColor = other.strokeColor; | 1579 strokeColor = other.strokeColor; |
1026 fillColor = other.fillColor; | 1580 fillColor = other.fillColor; |
1027 font = other.font; | 1581 font = other.font; |
1028 fontSize = other.fontSize; | 1582 fontSize = other.fontSize; |
1029 fontHScale = other.fontHScale; | 1583 fontHScale = other.fontHScale; |
1030 fontSpacing = other.fontSpacing; | 1584 fontSpacing = other.fontSpacing; |
1031 return *this; | 1585 return *this; |
1032 } | 1586 } |
1033 | |
1034 CAGG_Graphics::CAGG_Graphics() { | |
1035 m_owner = nullptr; | |
1036 } | |
1037 | |
1038 FX_ERR CAGG_Graphics::Create(CFX_Graphics* owner, | |
1039 int32_t width, | |
1040 int32_t height, | |
1041 FXDIB_Format format) { | |
1042 if (owner->m_renderDevice) | |
1043 return FX_ERR_Parameter_Invalid; | |
1044 if (m_owner) | |
1045 return FX_ERR_Property_Invalid; | |
1046 | |
1047 CFX_FxgeDevice* device = new CFX_FxgeDevice; | |
1048 device->Create(width, height, format); | |
1049 m_owner = owner; | |
1050 m_owner->m_renderDevice = device; | |
1051 m_owner->m_renderDevice->GetBitmap()->Clear(0xFFFFFFFF); | |
1052 return FX_ERR_Succeeded; | |
1053 } | |
1054 | |
1055 CAGG_Graphics::~CAGG_Graphics() { | |
1056 if (m_owner->m_renderDevice) | |
1057 delete (CFX_FxgeDevice*)m_owner->m_renderDevice; | |
1058 m_owner = nullptr; | |
1059 } | |
1060 | |
1061 CFX_Path::CFX_Path() { | |
1062 m_generator = nullptr; | |
1063 } | |
1064 | |
1065 FX_ERR CFX_Path::Create() { | |
1066 if (m_generator) | |
1067 return FX_ERR_Property_Invalid; | |
1068 | |
1069 m_generator = new CFX_PathGenerator; | |
1070 m_generator->Create(); | |
1071 return FX_ERR_Succeeded; | |
1072 } | |
1073 | |
1074 CFX_Path::~CFX_Path() { | |
1075 delete m_generator; | |
1076 } | |
1077 | |
1078 FX_ERR CFX_Path::MoveTo(FX_FLOAT x, FX_FLOAT y) { | |
1079 if (!m_generator) | |
1080 return FX_ERR_Property_Invalid; | |
1081 m_generator->MoveTo(x, y); | |
1082 return FX_ERR_Succeeded; | |
1083 } | |
1084 | |
1085 FX_ERR CFX_Path::LineTo(FX_FLOAT x, FX_FLOAT y) { | |
1086 if (!m_generator) | |
1087 return FX_ERR_Property_Invalid; | |
1088 m_generator->LineTo(x, y); | |
1089 return FX_ERR_Succeeded; | |
1090 } | |
1091 | |
1092 FX_ERR CFX_Path::BezierTo(FX_FLOAT ctrlX1, | |
1093 FX_FLOAT ctrlY1, | |
1094 FX_FLOAT ctrlX2, | |
1095 FX_FLOAT ctrlY2, | |
1096 FX_FLOAT toX, | |
1097 FX_FLOAT toY) { | |
1098 if (!m_generator) | |
1099 return FX_ERR_Property_Invalid; | |
1100 m_generator->BezierTo(ctrlX1, ctrlY1, ctrlX2, ctrlY2, toX, toY); | |
1101 return FX_ERR_Succeeded; | |
1102 } | |
1103 | |
1104 FX_ERR CFX_Path::ArcTo(FX_FLOAT left, | |
1105 FX_FLOAT top, | |
1106 FX_FLOAT width, | |
1107 FX_FLOAT height, | |
1108 FX_FLOAT startAngle, | |
1109 FX_FLOAT sweepAngle) { | |
1110 if (!m_generator) | |
1111 return FX_ERR_Property_Invalid; | |
1112 m_generator->ArcTo(left + width / 2, top + height / 2, width / 2, height / 2, | |
1113 startAngle, sweepAngle); | |
1114 return FX_ERR_Succeeded; | |
1115 } | |
1116 | |
1117 FX_ERR CFX_Path::Close() { | |
1118 if (!m_generator) | |
1119 return FX_ERR_Property_Invalid; | |
1120 m_generator->Close(); | |
1121 return FX_ERR_Succeeded; | |
1122 } | |
1123 | |
1124 FX_ERR CFX_Path::AddLine(FX_FLOAT x1, FX_FLOAT y1, FX_FLOAT x2, FX_FLOAT y2) { | |
1125 if (!m_generator) | |
1126 return FX_ERR_Property_Invalid; | |
1127 m_generator->AddLine(x1, y1, x2, y2); | |
1128 return FX_ERR_Succeeded; | |
1129 } | |
1130 | |
1131 FX_ERR CFX_Path::AddBezier(FX_FLOAT startX, | |
1132 FX_FLOAT startY, | |
1133 FX_FLOAT ctrlX1, | |
1134 FX_FLOAT ctrlY1, | |
1135 FX_FLOAT ctrlX2, | |
1136 FX_FLOAT ctrlY2, | |
1137 FX_FLOAT endX, | |
1138 FX_FLOAT endY) { | |
1139 if (!m_generator) | |
1140 return FX_ERR_Property_Invalid; | |
1141 m_generator->AddBezier(startX, startY, ctrlX1, ctrlY1, ctrlX2, ctrlY2, endX, | |
1142 endY); | |
1143 return FX_ERR_Succeeded; | |
1144 } | |
1145 | |
1146 FX_ERR CFX_Path::AddRectangle(FX_FLOAT left, | |
1147 FX_FLOAT top, | |
1148 FX_FLOAT width, | |
1149 FX_FLOAT height) { | |
1150 if (!m_generator) | |
1151 return FX_ERR_Property_Invalid; | |
1152 m_generator->AddRectangle(left, top, left + width, top + height); | |
1153 return FX_ERR_Succeeded; | |
1154 } | |
1155 | |
1156 FX_ERR CFX_Path::AddEllipse(FX_FLOAT left, | |
1157 FX_FLOAT top, | |
1158 FX_FLOAT width, | |
1159 FX_FLOAT height) { | |
1160 if (!m_generator) | |
1161 return FX_ERR_Property_Invalid; | |
1162 m_generator->AddEllipse(left + width / 2, top + height / 2, width / 2, | |
1163 height / 2); | |
1164 return FX_ERR_Succeeded; | |
1165 } | |
1166 | |
1167 FX_ERR CFX_Path::AddEllipse(const CFX_RectF& rect) { | |
1168 if (!m_generator) | |
1169 return FX_ERR_Property_Invalid; | |
1170 m_generator->AddEllipse(rect.left + rect.Width() / 2, | |
1171 rect.top + rect.Height() / 2, rect.Width() / 2, | |
1172 rect.Height() / 2); | |
1173 return FX_ERR_Succeeded; | |
1174 } | |
1175 | |
1176 FX_ERR CFX_Path::AddArc(FX_FLOAT left, | |
1177 FX_FLOAT top, | |
1178 FX_FLOAT width, | |
1179 FX_FLOAT height, | |
1180 FX_FLOAT startAngle, | |
1181 FX_FLOAT sweepAngle) { | |
1182 if (!m_generator) | |
1183 return FX_ERR_Property_Invalid; | |
1184 m_generator->AddArc(left + width / 2, top + height / 2, width / 2, height / 2, | |
1185 startAngle, sweepAngle); | |
1186 return FX_ERR_Succeeded; | |
1187 } | |
1188 | |
1189 FX_ERR CFX_Path::AddPie(FX_FLOAT left, | |
1190 FX_FLOAT top, | |
1191 FX_FLOAT width, | |
1192 FX_FLOAT height, | |
1193 FX_FLOAT startAngle, | |
1194 FX_FLOAT sweepAngle) { | |
1195 if (!m_generator) | |
1196 return FX_ERR_Property_Invalid; | |
1197 m_generator->AddPie(left + width / 2, top + height / 2, width / 2, height / 2, | |
1198 startAngle, sweepAngle); | |
1199 return FX_ERR_Succeeded; | |
1200 } | |
1201 | |
1202 FX_ERR CFX_Path::AddSubpath(CFX_Path* path) { | |
1203 if (!m_generator) | |
1204 return FX_ERR_Property_Invalid; | |
1205 m_generator->AddPathData(path->GetPathData()); | |
1206 return FX_ERR_Succeeded; | |
1207 } | |
1208 | |
1209 FX_ERR CFX_Path::Clear() { | |
1210 if (!m_generator) | |
1211 return FX_ERR_Property_Invalid; | |
1212 m_generator->GetPathData()->SetPointCount(0); | |
1213 return FX_ERR_Succeeded; | |
1214 } | |
1215 | |
1216 FX_BOOL CFX_Path::IsEmpty() { | |
1217 if (!m_generator) | |
1218 return FX_ERR_Property_Invalid; | |
1219 if (m_generator->GetPathData()->GetPointCount() == 0) { | |
1220 return TRUE; | |
1221 } | |
1222 return FALSE; | |
1223 } | |
1224 | |
1225 CFX_PathData* CFX_Path::GetPathData() { | |
1226 if (!m_generator) | |
1227 return nullptr; | |
1228 return m_generator->GetPathData(); | |
1229 } | |
1230 | |
1231 CFX_Color::CFX_Color() : m_type(FX_COLOR_None) {} | |
1232 | |
1233 CFX_Color::CFX_Color(const FX_ARGB argb) { | |
1234 Set(argb); | |
1235 } | |
1236 | |
1237 CFX_Color::CFX_Color(CFX_Pattern* pattern, const FX_ARGB argb) { | |
1238 Set(pattern, argb); | |
1239 } | |
1240 | |
1241 CFX_Color::CFX_Color(CFX_Shading* shading) { | |
1242 Set(shading); | |
1243 } | |
1244 | |
1245 CFX_Color::~CFX_Color() { | |
1246 m_type = FX_COLOR_None; | |
1247 } | |
1248 | |
1249 FX_ERR CFX_Color::Set(const FX_ARGB argb) { | |
1250 m_type = FX_COLOR_Solid; | |
1251 m_info.argb = argb; | |
1252 m_info.pattern = nullptr; | |
1253 return FX_ERR_Succeeded; | |
1254 } | |
1255 | |
1256 FX_ERR CFX_Color::Set(CFX_Pattern* pattern, const FX_ARGB argb) { | |
1257 if (!pattern) | |
1258 return FX_ERR_Parameter_Invalid; | |
1259 m_type = FX_COLOR_Pattern; | |
1260 m_info.argb = argb; | |
1261 m_info.pattern = pattern; | |
1262 return FX_ERR_Succeeded; | |
1263 } | |
1264 | |
1265 FX_ERR CFX_Color::Set(CFX_Shading* shading) { | |
1266 if (!shading) | |
1267 return FX_ERR_Parameter_Invalid; | |
1268 m_type = FX_COLOR_Shading; | |
1269 m_shading = shading; | |
1270 return FX_ERR_Succeeded; | |
1271 } | |
1272 | |
1273 CFX_Pattern::CFX_Pattern() { | |
1274 m_type = FX_PATTERN_None; | |
1275 m_matrix.SetIdentity(); | |
1276 } | |
1277 | |
1278 FX_ERR CFX_Pattern::Create(CFX_DIBitmap* bitmap, | |
1279 const FX_FLOAT xStep, | |
1280 const FX_FLOAT yStep, | |
1281 CFX_Matrix* matrix) { | |
1282 if (!bitmap) | |
1283 return FX_ERR_Parameter_Invalid; | |
1284 if (m_type != FX_PATTERN_None) { | |
1285 return FX_ERR_Property_Invalid; | |
1286 } | |
1287 m_type = FX_PATTERN_Bitmap; | |
1288 m_bitmapInfo.bitmap = bitmap; | |
1289 m_bitmapInfo.x1Step = xStep; | |
1290 m_bitmapInfo.y1Step = yStep; | |
1291 if (matrix) { | |
1292 m_matrix.Set(matrix->a, matrix->b, matrix->c, matrix->d, matrix->e, | |
1293 matrix->f); | |
1294 } | |
1295 return FX_ERR_Succeeded; | |
1296 } | |
1297 | |
1298 FX_ERR CFX_Pattern::Create(FX_HatchStyle hatchStyle, | |
1299 const FX_ARGB foreArgb, | |
1300 const FX_ARGB backArgb, | |
1301 CFX_Matrix* matrix) { | |
1302 if (hatchStyle < FX_HATCHSTYLE_Horizontal || | |
1303 hatchStyle > FX_HATCHSTYLE_SolidDiamond) { | |
1304 return FX_ERR_Parameter_Invalid; | |
1305 } | |
1306 if (m_type != FX_PATTERN_None) { | |
1307 return FX_ERR_Property_Invalid; | |
1308 } | |
1309 m_type = FX_PATTERN_Hatch; | |
1310 m_hatchInfo.hatchStyle = hatchStyle; | |
1311 m_hatchInfo.foreArgb = foreArgb; | |
1312 m_hatchInfo.backArgb = backArgb; | |
1313 if (matrix) { | |
1314 m_matrix.Set(matrix->a, matrix->b, matrix->c, matrix->d, matrix->e, | |
1315 matrix->f); | |
1316 } | |
1317 return FX_ERR_Succeeded; | |
1318 } | |
1319 | |
1320 CFX_Pattern::~CFX_Pattern() { | |
1321 m_type = FX_PATTERN_None; | |
1322 } | |
1323 | |
1324 CFX_Shading::CFX_Shading() { | |
1325 m_type = FX_SHADING_None; | |
1326 } | |
1327 | |
1328 FX_ERR CFX_Shading::CreateAxial(const CFX_PointF& beginPoint, | |
1329 const CFX_PointF& endPoint, | |
1330 FX_BOOL isExtendedBegin, | |
1331 FX_BOOL isExtendedEnd, | |
1332 const FX_ARGB beginArgb, | |
1333 const FX_ARGB endArgb) { | |
1334 if (m_type != FX_SHADING_None) { | |
1335 return FX_ERR_Property_Invalid; | |
1336 } | |
1337 m_type = FX_SHADING_Axial; | |
1338 m_beginPoint = beginPoint; | |
1339 m_endPoint = endPoint; | |
1340 m_isExtendedBegin = isExtendedBegin; | |
1341 m_isExtendedEnd = isExtendedEnd; | |
1342 m_beginArgb = beginArgb; | |
1343 m_endArgb = endArgb; | |
1344 return InitArgbArray(); | |
1345 } | |
1346 | |
1347 FX_ERR CFX_Shading::CreateRadial(const CFX_PointF& beginPoint, | |
1348 const CFX_PointF& endPoint, | |
1349 const FX_FLOAT beginRadius, | |
1350 const FX_FLOAT endRadius, | |
1351 FX_BOOL isExtendedBegin, | |
1352 FX_BOOL isExtendedEnd, | |
1353 const FX_ARGB beginArgb, | |
1354 const FX_ARGB endArgb) { | |
1355 if (m_type != FX_SHADING_None) { | |
1356 return FX_ERR_Property_Invalid; | |
1357 } | |
1358 m_type = FX_SHADING_Radial; | |
1359 m_beginPoint = beginPoint; | |
1360 m_endPoint = endPoint; | |
1361 m_beginRadius = beginRadius; | |
1362 m_endRadius = endRadius; | |
1363 m_isExtendedBegin = isExtendedBegin; | |
1364 m_isExtendedEnd = isExtendedEnd; | |
1365 m_beginArgb = beginArgb; | |
1366 m_endArgb = endArgb; | |
1367 return InitArgbArray(); | |
1368 } | |
1369 | |
1370 CFX_Shading::~CFX_Shading() { | |
1371 m_type = FX_SHADING_None; | |
1372 } | |
1373 | |
1374 FX_ERR CFX_Shading::InitArgbArray() { | |
1375 int32_t a1, r1, g1, b1; | |
1376 ArgbDecode(m_beginArgb, a1, r1, g1, b1); | |
1377 int32_t a2, r2, g2, b2; | |
1378 ArgbDecode(m_endArgb, a2, r2, g2, b2); | |
1379 FX_FLOAT f = (FX_FLOAT)(FX_SHADING_Steps - 1); | |
1380 FX_FLOAT aScale = (FX_FLOAT)(1.0 * (a2 - a1) / f); | |
1381 FX_FLOAT rScale = (FX_FLOAT)(1.0 * (r2 - r1) / f); | |
1382 FX_FLOAT gScale = (FX_FLOAT)(1.0 * (g2 - g1) / f); | |
1383 FX_FLOAT bScale = (FX_FLOAT)(1.0 * (b2 - b1) / f); | |
1384 int32_t a3, r3, g3, b3; | |
1385 for (int32_t i = 0; i < FX_SHADING_Steps; i++) { | |
1386 a3 = (int32_t)(i * aScale); | |
1387 r3 = (int32_t)(i * rScale); | |
1388 g3 = (int32_t)(i * gScale); | |
1389 b3 = (int32_t)(i * bScale); | |
1390 m_argbArray[i] = | |
1391 FXARGB_TODIB(FXARGB_MAKE((a1 + a3), (r1 + r3), (g1 + g3), (b1 + b3))); | |
1392 } | |
1393 return FX_ERR_Succeeded; | |
1394 } | |
OLD | NEW |