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(state.fBitmap->config() == SkBitmap::kA
RGB_8888_Config); \ | 93 #define CHECKSTATE(state) SkASSERT(4 == state.fBitmap->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(state.fBitmap->config() == SkBitmap::kA
RGB_8888_Config); \ | 105 #define CHECKSTATE(state) SkASSERT(4 == state.fBitmap->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(state.fBitmap->config() == SkBitmap::kR
GB_565_Config); \ | 124 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fBitmap->
colorType()); \ |
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(state.fBitmap->config() == SkBitmap::kR
GB_565_Config); \ | 140 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fBitmap->
colorType()); \ |
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(state.fBitmap->config() == SkBitmap::kI
ndex8_Config); \ | 155 #define CHECKSTATE(state) SkASSERT(kIndex_8_SkColorType == state.fBitmap->
colorType()); \ |
156 SkASSERT(state.fAlphaScale == 256) | 156 SkASSERT(state.fAlphaScale == 256) |
157 #define PREAMBLE(state) const SkPMColor* SK_RESTRICT table = state.fBitm
ap->getColorTable()->lockColors() | 157 #define PREAMBLE(state) const SkPMColor* SK_RESTRICT table = state.fBitm
ap->getColorTable()->lockColors() |
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) state.fBitmap->getColorTable()->unlockColors() | 160 #define POSTAMBLE(state) state.fBitmap->getColorTable()->unlockColors() |
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(state.fBitmap->config() == SkBitmap::kI
ndex8_Config); \ | 169 #define CHECKSTATE(state) SkASSERT(kIndex_8_SkColorType == state.fBitmap->
colorType()); \ |
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()->lockColors() | 172 const SkPMColor* SK_RESTRICT table = state.fBitm
ap->getColorTable()->lockColors() |
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) state.fBitmap->getColorTable()->unlockColors() | 175 #define POSTAMBLE(state) state.fBitmap->getColorTable()->unlockColors() |
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(state.fBitmap->config() == SkBitmap::kA
RGB_4444_Config); \ | 186 #define CHECKSTATE(state) SkASSERT(kARGB_4444_SkColorType == state.fBitmap
->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(state.fBitmap->config() == SkBitmap::kA
RGB_4444_Config); \ | 202 #define CHECKSTATE(state) SkASSERT(kARGB_4444_SkColorType == state.fBitmap
->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(state.fBitmap->config() == SkBitmap::kA
8_Config); | 221 #define CHECKSTATE(state) SkASSERT(kAlpha_8_SkColorType == state.fBitmap->
colorType()); |
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 /***************************************************************************** | 227 /***************************************************************************** |
228 * | 228 * |
229 * D16 functions | 229 * D16 functions |
230 * | 230 * |
231 */ | 231 */ |
232 | 232 |
233 // SRC == 8888 | 233 // SRC == 8888 |
234 | 234 |
235 #undef FILTER_PROC | 235 #undef FILTER_PROC |
236 #define FILTER_PROC(x, y, a, b, c, d, dst) \ | 236 #define FILTER_PROC(x, y, a, b, c, d, dst) \ |
237 do { \ | 237 do { \ |
238 SkPMColor dstColor; \ | 238 SkPMColor dstColor; \ |
239 NAME_WRAP(Filter_32_opaque)(x, y, a, b, c, d, &dstColor); \ | 239 NAME_WRAP(Filter_32_opaque)(x, y, a, b, c, d, &dstColor); \ |
240 (*dst) = SkPixel32ToPixel16(dstColor); \ | 240 (*dst) = SkPixel32ToPixel16(dstColor); \ |
241 } while (0) | 241 } while (0) |
242 | 242 |
243 #define MAKENAME(suffix) NAME_WRAP(S32_D16 ## suffix) | 243 #define MAKENAME(suffix) NAME_WRAP(S32_D16 ## suffix) |
244 #define DSTSIZE 16 | 244 #define DSTSIZE 16 |
245 #define SRCTYPE SkPMColor | 245 #define SRCTYPE SkPMColor |
246 #define CHECKSTATE(state) SkASSERT(state.fBitmap->config() == SkBitmap::kA
RGB_8888_Config); \ | 246 #define CHECKSTATE(state) SkASSERT(4 == state.fBitmap->bytesPerPixel()); \ |
247 SkASSERT(state.fBitmap->isOpaque()) | 247 SkASSERT(state.fBitmap->isOpaque()) |
248 #define RETURNDST(src) SkPixel32ToPixel16(src) | 248 #define RETURNDST(src) SkPixel32ToPixel16(src) |
249 #define SRC_TO_FILTER(src) src | 249 #define SRC_TO_FILTER(src) src |
250 #include "SkBitmapProcState_sample.h" | 250 #include "SkBitmapProcState_sample.h" |
251 | 251 |
252 // SRC == 565 | 252 // SRC == 565 |
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 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ | 257 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ |
258 *(dst) = SkCompact_rgb_16((tmp) >> 5); \ | 258 *(dst) = SkCompact_rgb_16((tmp) >> 5); \ |
259 } while (0) | 259 } while (0) |
260 | 260 |
261 #define MAKENAME(suffix) NAME_WRAP(S16_D16 ## suffix) | 261 #define MAKENAME(suffix) NAME_WRAP(S16_D16 ## suffix) |
262 #define DSTSIZE 16 | 262 #define DSTSIZE 16 |
263 #define SRCTYPE uint16_t | 263 #define SRCTYPE uint16_t |
264 #define CHECKSTATE(state) SkASSERT(state.fBitmap->config() == SkBitmap::kR
GB_565_Config) | 264 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fBitmap->
colorType()) |
265 #define RETURNDST(src) src | 265 #define RETURNDST(src) src |
266 #define SRC_TO_FILTER(src) src | 266 #define SRC_TO_FILTER(src) src |
267 #include "SkBitmapProcState_sample.h" | 267 #include "SkBitmapProcState_sample.h" |
268 | 268 |
269 // SRC == Index8 | 269 // SRC == Index8 |
270 | 270 |
271 #undef FILTER_PROC | 271 #undef FILTER_PROC |
272 #define FILTER_PROC(x, y, a, b, c, d, dst) \ | 272 #define FILTER_PROC(x, y, a, b, c, d, dst) \ |
273 do { \ | 273 do { \ |
274 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ | 274 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ |
275 *(dst) = SkCompact_rgb_16((tmp) >> 5); \ | 275 *(dst) = SkCompact_rgb_16((tmp) >> 5); \ |
276 } while (0) | 276 } while (0) |
277 | 277 |
278 #define MAKENAME(suffix) NAME_WRAP(SI8_D16 ## suffix) | 278 #define MAKENAME(suffix) NAME_WRAP(SI8_D16 ## suffix) |
279 #define DSTSIZE 16 | 279 #define DSTSIZE 16 |
280 #define SRCTYPE uint8_t | 280 #define SRCTYPE uint8_t |
281 #define CHECKSTATE(state) SkASSERT(state.fBitmap->config() == SkBitmap::kI
ndex8_Config); \ | 281 #define CHECKSTATE(state) SkASSERT(kIndex_8_SkColorType == state.fBitmap->
colorType()); \ |
282 SkASSERT(state.fBitmap->isOpaque()) | 282 SkASSERT(state.fBitmap->isOpaque()) |
283 #define PREAMBLE(state) const uint16_t* SK_RESTRICT table = state.fBitma
p->getColorTable()->lock16BitCache() | 283 #define PREAMBLE(state) const uint16_t* SK_RESTRICT table = state.fBitma
p->getColorTable()->lock16BitCache() |
284 #define RETURNDST(src) table[src] | 284 #define RETURNDST(src) table[src] |
285 #define SRC_TO_FILTER(src) table[src] | 285 #define SRC_TO_FILTER(src) table[src] |
286 #define POSTAMBLE(state) state.fBitmap->getColorTable()->unlock16BitCache
() | 286 #define POSTAMBLE(state) state.fBitmap->getColorTable()->unlock16BitCache
() |
287 #include "SkBitmapProcState_sample.h" | 287 #include "SkBitmapProcState_sample.h" |
288 | 288 |
289 /////////////////////////////////////////////////////////////////////////////// | 289 /////////////////////////////////////////////////////////////////////////////// |
290 | 290 |
291 #undef FILTER_PROC | 291 #undef FILTER_PROC |
292 #define FILTER_PROC(x, y, a, b, c, d, dst) \ | 292 #define FILTER_PROC(x, y, a, b, c, d, dst) \ |
293 do { \ | 293 do { \ |
294 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ | 294 uint32_t tmp = Filter_565_Expanded(x, y, a, b, c, d); \ |
295 *(dst) = SkCompact_rgb_16((tmp) >> 5); \ | 295 *(dst) = SkCompact_rgb_16((tmp) >> 5); \ |
296 } while (0) | 296 } while (0) |
297 | 297 |
298 | 298 |
299 // clamp | 299 // clamp |
300 | 300 |
301 #define TILEX_PROCF(fx, max) SkClampMax((fx) >> 16, max) | 301 #define TILEX_PROCF(fx, max) SkClampMax((fx) >> 16, max) |
302 #define TILEY_PROCF(fy, max) SkClampMax((fy) >> 16, max) | 302 #define TILEY_PROCF(fy, max) SkClampMax((fy) >> 16, max) |
303 #define TILEX_LOW_BITS(fx, max) (((fx) >> 12) & 0xF) | 303 #define TILEX_LOW_BITS(fx, max) (((fx) >> 12) & 0xF) |
304 #define TILEY_LOW_BITS(fy, max) (((fy) >> 12) & 0xF) | 304 #define TILEY_LOW_BITS(fy, max) (((fy) >> 12) & 0xF) |
305 | 305 |
306 #define MAKENAME(suffix) NAME_WRAP(Clamp_S16_D16 ## suffix) | 306 #define MAKENAME(suffix) NAME_WRAP(Clamp_S16_D16 ## suffix) |
307 #define SRCTYPE uint16_t | 307 #define SRCTYPE uint16_t |
308 #define DSTTYPE uint16_t | 308 #define DSTTYPE uint16_t |
309 #define CHECKSTATE(state) SkASSERT(state.fBitmap->config() == SkBitmap::kR
GB_565_Config) | 309 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fBitmap->
colorType()) |
310 #define SRC_TO_FILTER(src) src | 310 #define SRC_TO_FILTER(src) src |
311 #include "SkBitmapProcState_shaderproc.h" | 311 #include "SkBitmapProcState_shaderproc.h" |
312 | 312 |
313 | 313 |
314 #define TILEX_PROCF(fx, max) (((fx) & 0xFFFF) * ((max) + 1) >> 16) | 314 #define TILEX_PROCF(fx, max) (((fx) & 0xFFFF) * ((max) + 1) >> 16) |
315 #define TILEY_PROCF(fy, max) (((fy) & 0xFFFF) * ((max) + 1) >> 16) | 315 #define TILEY_PROCF(fy, max) (((fy) & 0xFFFF) * ((max) + 1) >> 16) |
316 #define TILEX_LOW_BITS(fx, max) ((((fx) & 0xFFFF) * ((max) + 1) >> 12) & 0xF) | 316 #define TILEX_LOW_BITS(fx, max) ((((fx) & 0xFFFF) * ((max) + 1) >> 12) & 0xF) |
317 #define TILEY_LOW_BITS(fy, max) ((((fy) & 0xFFFF) * ((max) + 1) >> 12) & 0xF) | 317 #define TILEY_LOW_BITS(fy, max) ((((fy) & 0xFFFF) * ((max) + 1) >> 12) & 0xF) |
318 | 318 |
319 #define MAKENAME(suffix) NAME_WRAP(Repeat_S16_D16 ## suffix) | 319 #define MAKENAME(suffix) NAME_WRAP(Repeat_S16_D16 ## suffix) |
320 #define SRCTYPE uint16_t | 320 #define SRCTYPE uint16_t |
321 #define DSTTYPE uint16_t | 321 #define DSTTYPE uint16_t |
322 #define CHECKSTATE(state) SkASSERT(state.fBitmap->config() == SkBitmap::kR
GB_565_Config) | 322 #define CHECKSTATE(state) SkASSERT(kRGB_565_SkColorType == state.fBitmap->
colorType()) |
323 #define SRC_TO_FILTER(src) src | 323 #define SRC_TO_FILTER(src) src |
324 #include "SkBitmapProcState_shaderproc.h" | 324 #include "SkBitmapProcState_shaderproc.h" |
325 | 325 |
326 | 326 |
327 #define TILEX_PROCF(fx, max) SkClampMax((fx) >> 16, max) | 327 #define TILEX_PROCF(fx, max) SkClampMax((fx) >> 16, max) |
328 #define TILEY_PROCF(fy, max) SkClampMax((fy) >> 16, max) | 328 #define TILEY_PROCF(fy, max) SkClampMax((fy) >> 16, max) |
329 #define TILEX_LOW_BITS(fx, max) (((fx) >> 12) & 0xF) | 329 #define TILEX_LOW_BITS(fx, max) (((fx) >> 12) & 0xF) |
330 #define TILEY_LOW_BITS(fy, max) (((fy) >> 12) & 0xF) | 330 #define TILEY_LOW_BITS(fy, max) (((fy) >> 12) & 0xF) |
331 | 331 |
332 #undef FILTER_PROC | 332 #undef FILTER_PROC |
333 #define FILTER_PROC(x, y, a, b, c, d, dst) NAME_WRAP(Filter_32_opaque)(x, y, a
, b, c, d, dst) | 333 #define FILTER_PROC(x, y, a, b, c, d, dst) NAME_WRAP(Filter_32_opaque)(x, y, a
, b, c, d, dst) |
334 #define MAKENAME(suffix) NAME_WRAP(Clamp_SI8_opaque_D32 ## suffix) | 334 #define MAKENAME(suffix) NAME_WRAP(Clamp_SI8_opaque_D32 ## suffix) |
335 #define SRCTYPE uint8_t | 335 #define SRCTYPE uint8_t |
336 #define DSTTYPE uint32_t | 336 #define DSTTYPE uint32_t |
337 #define CHECKSTATE(state) SkASSERT(state.fBitmap->config() == SkBitmap::kI
ndex8_Config) | 337 #define CHECKSTATE(state) SkASSERT(kIndex_8_SkColorType == state.fBitmap->
colorType()) |
338 #define PREAMBLE(state) const SkPMColor* SK_RESTRICT table = state.fBitm
ap->getColorTable()->lockColors() | 338 #define PREAMBLE(state) const SkPMColor* SK_RESTRICT table = state.fBitm
ap->getColorTable()->lockColors() |
339 #define SRC_TO_FILTER(src) table[src] | 339 #define SRC_TO_FILTER(src) table[src] |
340 #define POSTAMBLE(state) state.fBitmap->getColorTable()->unlockColors() | 340 #define POSTAMBLE(state) state.fBitmap->getColorTable()->unlockColors() |
341 #include "SkBitmapProcState_shaderproc.h" | 341 #include "SkBitmapProcState_shaderproc.h" |
342 | 342 |
343 #undef NAME_WRAP | 343 #undef NAME_WRAP |
OLD | NEW |