| 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 | 
|---|