Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(366)

Side by Side Diff: src/core/SkBitmapProcState_procs.h

Issue 1158273007: switch bitmapshader internals over to pixmap (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix neon/mips to use pixmpas Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/core/SkBitmapProcState_matrix_template.h ('k') | src/core/SkBitmapProcState_sample.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
OLDNEW
« no previous file with comments | « src/core/SkBitmapProcState_matrix_template.h ('k') | src/core/SkBitmapProcState_sample.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698