OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 // Define NAME_WRAP(x) before including this header to perform name-wrapping | 9 // Define NAME_WRAP(x) before including this header to perform name-wrapping |
10 // E.g. for ARM NEON, defined it as 'x ## _neon' to ensure all important | 10 // E.g. for ARM NEON, defined it as 'x ## _neon' to ensure all important |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 * | 83 * |
84 */ | 84 */ |
85 | 85 |
86 // SRC == 8888 | 86 // SRC == 8888 |
87 | 87 |
88 #define FILTER_PROC(x, y, a, b, c, d, dst) NAME_WRAP(Filter_32_opaque)(x, y, a
, b, c, d, dst) | 88 #define FILTER_PROC(x, y, a, b, c, d, dst) NAME_WRAP(Filter_32_opaque)(x, y, a
, b, c, d, dst) |
89 | 89 |
90 #define MAKENAME(suffix) NAME_WRAP(S32_opaque_D32 ## suffix) | 90 #define MAKENAME(suffix) NAME_WRAP(S32_opaque_D32 ## suffix) |
91 #define DSTSIZE 32 | 91 #define DSTSIZE 32 |
92 #define SRCTYPE SkPMColor | 92 #define SRCTYPE SkPMColor |
93 #define CHECKSTATE(state) SkASSERT(4 == state.fBitmap->bytesPerPixel()); \ | 93 #define CHECKSTATE(state) SkASSERT(4 == state.fPixmap.info().bytesPerPixel
()); \ |
94 SkASSERT(state.fAlphaScale == 256) | 94 SkASSERT(state.fAlphaScale == 256) |
95 #define RETURNDST(src) src | 95 #define RETURNDST(src) src |
96 #define SRC_TO_FILTER(src) src | 96 #define SRC_TO_FILTER(src) src |
97 #include "SkBitmapProcState_sample.h" | 97 #include "SkBitmapProcState_sample.h" |
98 | 98 |
99 #undef FILTER_PROC | 99 #undef FILTER_PROC |
100 #define FILTER_PROC(x, y, a, b, c, d, dst) NAME_WRAP(Filter_32_alpha)(x, y, a,
b, c, d, dst, alphaScale) | 100 #define FILTER_PROC(x, y, a, b, c, d, dst) NAME_WRAP(Filter_32_alpha)(x, y, a,
b, c, d, dst, alphaScale) |
101 | 101 |
102 #define MAKENAME(suffix) NAME_WRAP(S32_alpha_D32 ## suffix) | 102 #define MAKENAME(suffix) NAME_WRAP(S32_alpha_D32 ## suffix) |
103 #define DSTSIZE 32 | 103 #define DSTSIZE 32 |
104 #define SRCTYPE SkPMColor | 104 #define SRCTYPE SkPMColor |
105 #define CHECKSTATE(state) SkASSERT(4 == state.fBitmap->bytesPerPixel()); \ | 105 #define CHECKSTATE(state) SkASSERT(4 == state.fPixmap.info().bytesPerPixel
()); \ |
106 SkASSERT(state.fAlphaScale < 256) | 106 SkASSERT(state.fAlphaScale < 256) |
107 #define PREAMBLE(state) unsigned alphaScale = state.fAlphaScale | 107 #define PREAMBLE(state) unsigned alphaScale = state.fAlphaScale |
108 #define RETURNDST(src) SkAlphaMulQ(src, alphaScale) | 108 #define RETURNDST(src) SkAlphaMulQ(src, alphaScale) |
109 #define SRC_TO_FILTER(src) src | 109 #define SRC_TO_FILTER(src) src |
110 #include "SkBitmapProcState_sample.h" | 110 #include "SkBitmapProcState_sample.h" |
111 | 111 |
112 // SRC == 565 | 112 // SRC == 565 |
113 | 113 |
114 #undef FILTER_PROC | 114 #undef FILTER_PROC |
115 #define FILTER_PROC(x, y, a, b, c, d, dst) \ | 115 #define FILTER_PROC(x, y, a, b, c, d, dst) \ |
116 do { \ | 116 do { \ |
117 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ | 117 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ |
118 *(dst) = SkExpanded_565_To_PMColor(tmp); \ | 118 *(dst) = SkExpanded_565_To_PMColor(tmp); \ |
119 } while (0) | 119 } while (0) |
120 | 120 |
121 #define MAKENAME(suffix) NAME_WRAP(S16_opaque_D32 ## suffix) | 121 #define MAKENAME(suffix) NAME_WRAP(S16_opaque_D32 ## suffix) |
122 #define DSTSIZE 32 | 122 #define DSTSIZE 32 |
123 #define SRCTYPE uint16_t | 123 #define SRCTYPE uint16_t |
124 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fBitmap->
colorType()); \ | 124 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fPixmap.c
olorType()); \ |
125 SkASSERT(state.fAlphaScale == 256) | 125 SkASSERT(state.fAlphaScale == 256) |
126 #define RETURNDST(src) SkPixel16ToPixel32(src) | 126 #define RETURNDST(src) SkPixel16ToPixel32(src) |
127 #define SRC_TO_FILTER(src) src | 127 #define SRC_TO_FILTER(src) src |
128 #include "SkBitmapProcState_sample.h" | 128 #include "SkBitmapProcState_sample.h" |
129 | 129 |
130 #undef FILTER_PROC | 130 #undef FILTER_PROC |
131 #define FILTER_PROC(x, y, a, b, c, d, dst) \ | 131 #define FILTER_PROC(x, y, a, b, c, d, dst) \ |
132 do { \ | 132 do { \ |
133 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ | 133 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ |
134 *(dst) = SkAlphaMulQ(SkExpanded_565_To_PMColor(tmp), alphaScale); \ | 134 *(dst) = SkAlphaMulQ(SkExpanded_565_To_PMColor(tmp), alphaScale); \ |
135 } while (0) | 135 } while (0) |
136 | 136 |
137 #define MAKENAME(suffix) NAME_WRAP(S16_alpha_D32 ## suffix) | 137 #define MAKENAME(suffix) NAME_WRAP(S16_alpha_D32 ## suffix) |
138 #define DSTSIZE 32 | 138 #define DSTSIZE 32 |
139 #define SRCTYPE uint16_t | 139 #define SRCTYPE uint16_t |
140 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fBitmap->
colorType()); \ | 140 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fPixmap.c
olorType()); \ |
141 SkASSERT(state.fAlphaScale < 256) | 141 SkASSERT(state.fAlphaScale < 256) |
142 #define PREAMBLE(state) unsigned alphaScale = state.fAlphaScale | 142 #define PREAMBLE(state) unsigned alphaScale = state.fAlphaScale |
143 #define RETURNDST(src) SkAlphaMulQ(SkPixel16ToPixel32(src), alphaScale) | 143 #define RETURNDST(src) SkAlphaMulQ(SkPixel16ToPixel32(src), alphaScale) |
144 #define SRC_TO_FILTER(src) src | 144 #define SRC_TO_FILTER(src) src |
145 #include "SkBitmapProcState_sample.h" | 145 #include "SkBitmapProcState_sample.h" |
146 | 146 |
147 // SRC == Index8 | 147 // SRC == Index8 |
148 | 148 |
149 #undef FILTER_PROC | 149 #undef FILTER_PROC |
150 #define FILTER_PROC(x, y, a, b, c, d, dst) NAME_WRAP(Filter_32_opaque)(x, y, a
, b, c, d, dst) | 150 #define FILTER_PROC(x, y, a, b, c, d, dst) NAME_WRAP(Filter_32_opaque)(x, y, a
, b, c, d, dst) |
151 | 151 |
152 #define MAKENAME(suffix) NAME_WRAP(SI8_opaque_D32 ## suffix) | 152 #define MAKENAME(suffix) NAME_WRAP(SI8_opaque_D32 ## suffix) |
153 #define DSTSIZE 32 | 153 #define DSTSIZE 32 |
154 #define SRCTYPE uint8_t | 154 #define SRCTYPE uint8_t |
155 #define CHECKSTATE(state) SkASSERT(kIndex_8_SkColorType == state.fBitmap->
colorType()); \ | 155 #define CHECKSTATE(state) SkASSERT(kIndex_8_SkColorType == state.fPixmap.c
olorType()); \ |
156 SkASSERT(state.fAlphaScale == 256) | 156 SkASSERT(state.fAlphaScale == 256) |
157 #define PREAMBLE(state) const SkPMColor* SK_RESTRICT table = state.fBitm
ap->getColorTable()->readColors() | 157 #define PREAMBLE(state) const SkPMColor* SK_RESTRICT table = state.fPixm
ap.ctable()->readColors() |
158 #define RETURNDST(src) table[src] | 158 #define RETURNDST(src) table[src] |
159 #define SRC_TO_FILTER(src) table[src] | 159 #define SRC_TO_FILTER(src) table[src] |
160 #define POSTAMBLE(state) | 160 #define POSTAMBLE(state) |
161 #include "SkBitmapProcState_sample.h" | 161 #include "SkBitmapProcState_sample.h" |
162 | 162 |
163 #undef FILTER_PROC | 163 #undef FILTER_PROC |
164 #define FILTER_PROC(x, y, a, b, c, d, dst) NAME_WRAP(Filter_32_alpha)(x, y, a,
b, c, d, dst, alphaScale) | 164 #define FILTER_PROC(x, y, a, b, c, d, dst) NAME_WRAP(Filter_32_alpha)(x, y, a,
b, c, d, dst, alphaScale) |
165 | 165 |
166 #define MAKENAME(suffix) NAME_WRAP(SI8_alpha_D32 ## suffix) | 166 #define MAKENAME(suffix) NAME_WRAP(SI8_alpha_D32 ## suffix) |
167 #define DSTSIZE 32 | 167 #define DSTSIZE 32 |
168 #define SRCTYPE uint8_t | 168 #define SRCTYPE uint8_t |
169 #define CHECKSTATE(state) SkASSERT(kIndex_8_SkColorType == state.fBitmap->
colorType()); \ | 169 #define CHECKSTATE(state) SkASSERT(kIndex_8_SkColorType == state.fPixmap.c
olorType()); \ |
170 SkASSERT(state.fAlphaScale < 256) | 170 SkASSERT(state.fAlphaScale < 256) |
171 #define PREAMBLE(state) unsigned alphaScale = state.fAlphaScale; \ | 171 #define PREAMBLE(state) unsigned alphaScale = state.fAlphaScale; \ |
172 const SkPMColor* SK_RESTRICT table = state.fBitm
ap->getColorTable()->readColors() | 172 const SkPMColor* SK_RESTRICT table = state.fPixm
ap.ctable()->readColors() |
173 #define RETURNDST(src) SkAlphaMulQ(table[src], alphaScale) | 173 #define RETURNDST(src) SkAlphaMulQ(table[src], alphaScale) |
174 #define SRC_TO_FILTER(src) table[src] | 174 #define SRC_TO_FILTER(src) table[src] |
175 #define POSTAMBLE(state) | 175 #define POSTAMBLE(state) |
176 #include "SkBitmapProcState_sample.h" | 176 #include "SkBitmapProcState_sample.h" |
177 | 177 |
178 // SRC == 4444 | 178 // SRC == 4444 |
179 | 179 |
180 #undef FILTER_PROC | 180 #undef FILTER_PROC |
181 #define FILTER_PROC(x, y, a, b, c, d, dst) *(dst) = Filter_4444_D32(x, y, a, b,
c, d) | 181 #define FILTER_PROC(x, y, a, b, c, d, dst) *(dst) = Filter_4444_D32(x, y, a, b,
c, d) |
182 | 182 |
183 #define MAKENAME(suffix) NAME_WRAP(S4444_opaque_D32 ## suffix) | 183 #define MAKENAME(suffix) NAME_WRAP(S4444_opaque_D32 ## suffix) |
184 #define DSTSIZE 32 | 184 #define DSTSIZE 32 |
185 #define SRCTYPE SkPMColor16 | 185 #define SRCTYPE SkPMColor16 |
186 #define CHECKSTATE(state) SkASSERT(kARGB_4444_SkColorType == state.fBitmap
->colorType()); \ | 186 #define CHECKSTATE(state) SkASSERT(kARGB_4444_SkColorType == state.fPixmap
.colorType()); \ |
187 SkASSERT(state.fAlphaScale == 256) | 187 SkASSERT(state.fAlphaScale == 256) |
188 #define RETURNDST(src) SkPixel4444ToPixel32(src) | 188 #define RETURNDST(src) SkPixel4444ToPixel32(src) |
189 #define SRC_TO_FILTER(src) src | 189 #define SRC_TO_FILTER(src) src |
190 #include "SkBitmapProcState_sample.h" | 190 #include "SkBitmapProcState_sample.h" |
191 | 191 |
192 #undef FILTER_PROC | 192 #undef FILTER_PROC |
193 #define FILTER_PROC(x, y, a, b, c, d, dst) \ | 193 #define FILTER_PROC(x, y, a, b, c, d, dst) \ |
194 do { \ | 194 do { \ |
195 uint32_t tmp = Filter_4444_D32(x, y, a, b, c, d); \ | 195 uint32_t tmp = Filter_4444_D32(x, y, a, b, c, d); \ |
196 *(dst) = SkAlphaMulQ(tmp, alphaScale); \ | 196 *(dst) = SkAlphaMulQ(tmp, alphaScale); \ |
197 } while (0) | 197 } while (0) |
198 | 198 |
199 #define MAKENAME(suffix) NAME_WRAP(S4444_alpha_D32 ## suffix) | 199 #define MAKENAME(suffix) NAME_WRAP(S4444_alpha_D32 ## suffix) |
200 #define DSTSIZE 32 | 200 #define DSTSIZE 32 |
201 #define SRCTYPE SkPMColor16 | 201 #define SRCTYPE SkPMColor16 |
202 #define CHECKSTATE(state) SkASSERT(kARGB_4444_SkColorType == state.fBitmap
->colorType()); \ | 202 #define CHECKSTATE(state) SkASSERT(kARGB_4444_SkColorType == state.fPixmap
.colorType()); \ |
203 SkASSERT(state.fAlphaScale < 256) | 203 SkASSERT(state.fAlphaScale < 256) |
204 #define PREAMBLE(state) unsigned alphaScale = state.fAlphaScale | 204 #define PREAMBLE(state) unsigned alphaScale = state.fAlphaScale |
205 #define RETURNDST(src) SkAlphaMulQ(SkPixel4444ToPixel32(src), alphaScal
e) | 205 #define RETURNDST(src) SkAlphaMulQ(SkPixel4444ToPixel32(src), alphaScal
e) |
206 #define SRC_TO_FILTER(src) src | 206 #define SRC_TO_FILTER(src) src |
207 #include "SkBitmapProcState_sample.h" | 207 #include "SkBitmapProcState_sample.h" |
208 | 208 |
209 // SRC == A8 | 209 // SRC == A8 |
210 | 210 |
211 #undef FILTER_PROC | 211 #undef FILTER_PROC |
212 #define FILTER_PROC(x, y, a, b, c, d, dst) \ | 212 #define FILTER_PROC(x, y, a, b, c, d, dst) \ |
213 do { \ | 213 do { \ |
214 unsigned tmp = Filter_8(x, y, a, b, c, d); \ | 214 unsigned tmp = Filter_8(x, y, a, b, c, d); \ |
215 *(dst) = SkAlphaMulQ(pmColor, SkAlpha255To256(tmp)); \ | 215 *(dst) = SkAlphaMulQ(pmColor, SkAlpha255To256(tmp)); \ |
216 } while (0) | 216 } while (0) |
217 | 217 |
218 #define MAKENAME(suffix) NAME_WRAP(SA8_alpha_D32 ## suffix) | 218 #define MAKENAME(suffix) NAME_WRAP(SA8_alpha_D32 ## suffix) |
219 #define DSTSIZE 32 | 219 #define DSTSIZE 32 |
220 #define SRCTYPE uint8_t | 220 #define SRCTYPE uint8_t |
221 #define CHECKSTATE(state) SkASSERT(kAlpha_8_SkColorType == state.fBitmap->
colorType()); | 221 #define CHECKSTATE(state) SkASSERT(kAlpha_8_SkColorType == state.fPixmap.c
olorType()); |
222 #define PREAMBLE(state) const SkPMColor pmColor = state.fPaintPMColor; | 222 #define PREAMBLE(state) const SkPMColor pmColor = state.fPaintPMColor; |
223 #define RETURNDST(src) SkAlphaMulQ(pmColor, SkAlpha255To256(src)) | 223 #define RETURNDST(src) SkAlphaMulQ(pmColor, SkAlpha255To256(src)) |
224 #define SRC_TO_FILTER(src) src | 224 #define SRC_TO_FILTER(src) src |
225 #include "SkBitmapProcState_sample.h" | 225 #include "SkBitmapProcState_sample.h" |
226 | 226 |
227 // SRC == Gray8 | 227 // SRC == Gray8 |
228 | 228 |
229 #undef FILTER_PROC | 229 #undef FILTER_PROC |
230 #define FILTER_PROC(x, y, a, b, c, d, dst) \ | 230 #define FILTER_PROC(x, y, a, b, c, d, dst) \ |
231 do { \ | 231 do { \ |
232 unsigned tmp = Filter_8(x, y, a, b, c, d); \ | 232 unsigned tmp = Filter_8(x, y, a, b, c, d); \ |
233 SkPMColor color = SkPackARGB32(0xFF, tmp, tmp, tmp); \ | 233 SkPMColor color = SkPackARGB32(0xFF, tmp, tmp, tmp); \ |
234 *(dst) = SkAlphaMulQ(color, alphaScale); \ | 234 *(dst) = SkAlphaMulQ(color, alphaScale); \ |
235 } while (0) | 235 } while (0) |
236 | 236 |
237 #define MAKENAME(suffix) NAME_WRAP(SG8_alpha_D32 ## suffix) | 237 #define MAKENAME(suffix) NAME_WRAP(SG8_alpha_D32 ## suffix) |
238 #define DSTSIZE 32 | 238 #define DSTSIZE 32 |
239 #define SRCTYPE uint8_t | 239 #define SRCTYPE uint8_t |
240 #define CHECKSTATE(state) SkASSERT(kGray_8_SkColorType == state.fBitmap->c
olorType()); | 240 #define CHECKSTATE(state) SkASSERT(kGray_8_SkColorType == state.fPixmap.co
lorType()); |
241 #define PREAMBLE(state) unsigned alphaScale = state.fAlphaScale | 241 #define PREAMBLE(state) unsigned alphaScale = state.fAlphaScale |
242 #define RETURNDST(src) SkAlphaMulQ(SkPackARGB32(0xFF, src, src, src), a
lphaScale) | 242 #define RETURNDST(src) SkAlphaMulQ(SkPackARGB32(0xFF, src, src, src), a
lphaScale) |
243 #define SRC_TO_FILTER(src) src | 243 #define SRC_TO_FILTER(src) src |
244 #include "SkBitmapProcState_sample.h" | 244 #include "SkBitmapProcState_sample.h" |
245 | 245 |
246 /***************************************************************************** | 246 /***************************************************************************** |
247 * | 247 * |
248 * D16 functions | 248 * D16 functions |
249 * | 249 * |
250 */ | 250 */ |
251 | 251 |
252 // SRC == 8888 | 252 // SRC == 8888 |
253 | 253 |
254 #undef FILTER_PROC | 254 #undef FILTER_PROC |
255 #define FILTER_PROC(x, y, a, b, c, d, dst) \ | 255 #define FILTER_PROC(x, y, a, b, c, d, dst) \ |
256 do { \ | 256 do { \ |
257 SkPMColor dstColor; \ | 257 SkPMColor dstColor; \ |
258 NAME_WRAP(Filter_32_opaque)(x, y, a, b, c, d, &dstColor); \ | 258 NAME_WRAP(Filter_32_opaque)(x, y, a, b, c, d, &dstColor); \ |
259 (*dst) = SkPixel32ToPixel16(dstColor); \ | 259 (*dst) = SkPixel32ToPixel16(dstColor); \ |
260 } while (0) | 260 } while (0) |
261 | 261 |
262 #define MAKENAME(suffix) NAME_WRAP(S32_D16 ## suffix) | 262 #define MAKENAME(suffix) NAME_WRAP(S32_D16 ## suffix) |
263 #define DSTSIZE 16 | 263 #define DSTSIZE 16 |
264 #define SRCTYPE SkPMColor | 264 #define SRCTYPE SkPMColor |
265 #define CHECKSTATE(state) SkASSERT(4 == state.fBitmap->bytesPerPixel()); \ | 265 #define CHECKSTATE(state) SkASSERT(4 == state.fPixmap.info().bytesPerPixel
()); \ |
266 SkASSERT(state.fBitmap->isOpaque()) | 266 SkASSERT(state.fPixmap.isOpaque()) |
267 #define RETURNDST(src) SkPixel32ToPixel16(src) | 267 #define RETURNDST(src) SkPixel32ToPixel16(src) |
268 #define SRC_TO_FILTER(src) src | 268 #define SRC_TO_FILTER(src) src |
269 #include "SkBitmapProcState_sample.h" | 269 #include "SkBitmapProcState_sample.h" |
270 | 270 |
271 // SRC == 565 | 271 // SRC == 565 |
272 | 272 |
273 #undef FILTER_PROC | 273 #undef FILTER_PROC |
274 #define FILTER_PROC(x, y, a, b, c, d, dst) \ | 274 #define FILTER_PROC(x, y, a, b, c, d, dst) \ |
275 do { \ | 275 do { \ |
276 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ | 276 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ |
277 *(dst) = SkCompact_rgb_16((tmp) >> 5); \ | 277 *(dst) = SkCompact_rgb_16((tmp) >> 5); \ |
278 } while (0) | 278 } while (0) |
279 | 279 |
280 #define MAKENAME(suffix) NAME_WRAP(S16_D16 ## suffix) | 280 #define MAKENAME(suffix) NAME_WRAP(S16_D16 ## suffix) |
281 #define DSTSIZE 16 | 281 #define DSTSIZE 16 |
282 #define SRCTYPE uint16_t | 282 #define SRCTYPE uint16_t |
283 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fBitmap->
colorType()) | 283 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fPixmap.c
olorType()) |
284 #define RETURNDST(src) src | 284 #define RETURNDST(src) src |
285 #define SRC_TO_FILTER(src) src | 285 #define SRC_TO_FILTER(src) src |
286 #include "SkBitmapProcState_sample.h" | 286 #include "SkBitmapProcState_sample.h" |
287 | 287 |
288 // SRC == Index8 | 288 // SRC == Index8 |
289 | 289 |
290 #undef FILTER_PROC | 290 #undef FILTER_PROC |
291 #define FILTER_PROC(x, y, a, b, c, d, dst) \ | 291 #define FILTER_PROC(x, y, a, b, c, d, dst) \ |
292 do { \ | 292 do { \ |
293 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ | 293 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ |
294 *(dst) = SkCompact_rgb_16((tmp) >> 5); \ | 294 *(dst) = SkCompact_rgb_16((tmp) >> 5); \ |
295 } while (0) | 295 } while (0) |
296 | 296 |
297 #define MAKENAME(suffix) NAME_WRAP(SI8_D16 ## suffix) | 297 #define MAKENAME(suffix) NAME_WRAP(SI8_D16 ## suffix) |
298 #define DSTSIZE 16 | 298 #define DSTSIZE 16 |
299 #define SRCTYPE uint8_t | 299 #define SRCTYPE uint8_t |
300 #define CHECKSTATE(state) SkASSERT(kIndex_8_SkColorType == state.fBitmap->
colorType()); \ | 300 #define CHECKSTATE(state) SkASSERT(kIndex_8_SkColorType == state.fPixmap.c
olorType()); \ |
301 SkASSERT(state.fBitmap->isOpaque()) | 301 SkASSERT(state.fPixmap.isOpaque()) |
302 #define PREAMBLE(state) const uint16_t* SK_RESTRICT table = state.fBitma
p->getColorTable()->read16BitCache() | 302 #define PREAMBLE(state) const uint16_t* SK_RESTRICT table = state.fPixma
p.ctable()->read16BitCache() |
303 #define RETURNDST(src) table[src] | 303 #define RETURNDST(src) table[src] |
304 #define SRC_TO_FILTER(src) table[src] | 304 #define SRC_TO_FILTER(src) table[src] |
305 #define POSTAMBLE(state) | 305 #define POSTAMBLE(state) |
306 #include "SkBitmapProcState_sample.h" | 306 #include "SkBitmapProcState_sample.h" |
307 | 307 |
308 /////////////////////////////////////////////////////////////////////////////// | 308 /////////////////////////////////////////////////////////////////////////////// |
309 | 309 |
310 #undef FILTER_PROC | 310 #undef FILTER_PROC |
311 #define FILTER_PROC(x, y, a, b, c, d, dst) \ | 311 #define FILTER_PROC(x, y, a, b, c, d, dst) \ |
312 do { \ | 312 do { \ |
313 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ | 313 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ |
314 *(dst) = SkCompact_rgb_16((tmp) >> 5); \ | 314 *(dst) = SkCompact_rgb_16((tmp) >> 5); \ |
315 } while (0) | 315 } while (0) |
316 | 316 |
317 | 317 |
318 // clamp | 318 // clamp |
319 | 319 |
320 #define TILEX_PROCF(fx, max) SkClampMax((fx) >> 16, max) | 320 #define TILEX_PROCF(fx, max) SkClampMax((fx) >> 16, max) |
321 #define TILEY_PROCF(fy, max) SkClampMax((fy) >> 16, max) | 321 #define TILEY_PROCF(fy, max) SkClampMax((fy) >> 16, max) |
322 #define TILEX_LOW_BITS(fx, max) (((fx) >> 12) & 0xF) | 322 #define TILEX_LOW_BITS(fx, max) (((fx) >> 12) & 0xF) |
323 #define TILEY_LOW_BITS(fy, max) (((fy) >> 12) & 0xF) | 323 #define TILEY_LOW_BITS(fy, max) (((fy) >> 12) & 0xF) |
324 | 324 |
325 #define MAKENAME(suffix) NAME_WRAP(Clamp_S16_D16 ## suffix) | 325 #define MAKENAME(suffix) NAME_WRAP(Clamp_S16_D16 ## suffix) |
326 #define SRCTYPE uint16_t | 326 #define SRCTYPE uint16_t |
327 #define DSTTYPE uint16_t | 327 #define DSTTYPE uint16_t |
328 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fBitmap->
colorType()) | 328 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fPixmap.c
olorType()) |
329 #define SRC_TO_FILTER(src) src | 329 #define SRC_TO_FILTER(src) src |
330 #include "SkBitmapProcState_shaderproc.h" | 330 #include "SkBitmapProcState_shaderproc.h" |
331 | 331 |
332 | 332 |
333 #define TILEX_PROCF(fx, max) (((fx) & 0xFFFF) * ((max) + 1) >> 16) | 333 #define TILEX_PROCF(fx, max) (((fx) & 0xFFFF) * ((max) + 1) >> 16) |
334 #define TILEY_PROCF(fy, max) (((fy) & 0xFFFF) * ((max) + 1) >> 16) | 334 #define TILEY_PROCF(fy, max) (((fy) & 0xFFFF) * ((max) + 1) >> 16) |
335 #define TILEX_LOW_BITS(fx, max) ((((fx) & 0xFFFF) * ((max) + 1) >> 12) & 0xF) | 335 #define TILEX_LOW_BITS(fx, max) ((((fx) & 0xFFFF) * ((max) + 1) >> 12) & 0xF) |
336 #define TILEY_LOW_BITS(fy, max) ((((fy) & 0xFFFF) * ((max) + 1) >> 12) & 0xF) | 336 #define TILEY_LOW_BITS(fy, max) ((((fy) & 0xFFFF) * ((max) + 1) >> 12) & 0xF) |
337 | 337 |
338 #define MAKENAME(suffix) NAME_WRAP(Repeat_S16_D16 ## suffix) | 338 #define MAKENAME(suffix) NAME_WRAP(Repeat_S16_D16 ## suffix) |
339 #define SRCTYPE uint16_t | 339 #define SRCTYPE uint16_t |
340 #define DSTTYPE uint16_t | 340 #define DSTTYPE uint16_t |
341 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fBitmap->
colorType()) | 341 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fPixmap.c
olorType()) |
342 #define SRC_TO_FILTER(src) src | 342 #define SRC_TO_FILTER(src) src |
343 #include "SkBitmapProcState_shaderproc.h" | 343 #include "SkBitmapProcState_shaderproc.h" |
344 | 344 |
345 | 345 |
346 #define TILEX_PROCF(fx, max) SkClampMax((fx) >> 16, max) | 346 #define TILEX_PROCF(fx, max) SkClampMax((fx) >> 16, max) |
347 #define TILEY_PROCF(fy, max) SkClampMax((fy) >> 16, max) | 347 #define TILEY_PROCF(fy, max) SkClampMax((fy) >> 16, max) |
348 #define TILEX_LOW_BITS(fx, max) (((fx) >> 12) & 0xF) | 348 #define TILEX_LOW_BITS(fx, max) (((fx) >> 12) & 0xF) |
349 #define TILEY_LOW_BITS(fy, max) (((fy) >> 12) & 0xF) | 349 #define TILEY_LOW_BITS(fy, max) (((fy) >> 12) & 0xF) |
350 | 350 |
351 #undef FILTER_PROC | 351 #undef FILTER_PROC |
352 #define FILTER_PROC(x, y, a, b, c, d, dst) NAME_WRAP(Filter_32_opaque)(x, y, a
, b, c, d, dst) | 352 #define FILTER_PROC(x, y, a, b, c, d, dst) NAME_WRAP(Filter_32_opaque)(x, y, a
, b, c, d, dst) |
353 #define MAKENAME(suffix) NAME_WRAP(Clamp_SI8_opaque_D32 ## suffix) | 353 #define MAKENAME(suffix) NAME_WRAP(Clamp_SI8_opaque_D32 ## suffix) |
354 #define SRCTYPE uint8_t | 354 #define SRCTYPE uint8_t |
355 #define DSTTYPE uint32_t | 355 #define DSTTYPE uint32_t |
356 #define CHECKSTATE(state) SkASSERT(kIndex_8_SkColorType == state.fBitmap->
colorType()) | 356 #define CHECKSTATE(state) SkASSERT(kIndex_8_SkColorType == state.fPixmap.c
olorType()) |
357 #define PREAMBLE(state) const SkPMColor* SK_RESTRICT table = state.fBitm
ap->getColorTable()->readColors() | 357 #define PREAMBLE(state) const SkPMColor* SK_RESTRICT table = state.fPixm
ap.ctable()->readColors() |
358 #define SRC_TO_FILTER(src) table[src] | 358 #define SRC_TO_FILTER(src) table[src] |
359 #define POSTAMBLE(state) | 359 #define POSTAMBLE(state) |
360 #include "SkBitmapProcState_shaderproc.h" | 360 #include "SkBitmapProcState_shaderproc.h" |
361 | 361 |
362 #undef NAME_WRAP | 362 #undef NAME_WRAP |
OLD | NEW |