OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
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 | 9 |
10 #include "SkSpriteBlitter.h" | 10 #include "SkSpriteBlitter.h" |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 const uint32_t* SK_RESTRICT src = fSource->getAddr32(x - fLeft, | 128 const uint32_t* SK_RESTRICT src = fSource->getAddr32(x - fLeft, |
129 y - fTop); | 129 y - fTop); |
130 size_t dstRB = fDevice->rowBytes(); | 130 size_t dstRB = fDevice->rowBytes(); |
131 size_t srcRB = fSource->rowBytes(); | 131 size_t srcRB = fSource->rowBytes(); |
132 SkColorFilter* colorFilter = fColorFilter; | 132 SkColorFilter* colorFilter = fColorFilter; |
133 SkXfermode* xfermode = fXfermode; | 133 SkXfermode* xfermode = fXfermode; |
134 | 134 |
135 do { | 135 do { |
136 const SkPMColor* tmp = src; | 136 const SkPMColor* tmp = src; |
137 | 137 |
138 if (NULL != colorFilter) { | 138 if (colorFilter) { |
139 colorFilter->filterSpan(src, width, fBuffer); | 139 colorFilter->filterSpan(src, width, fBuffer); |
140 tmp = fBuffer; | 140 tmp = fBuffer; |
141 } | 141 } |
142 | 142 |
143 if (NULL != xfermode) { | 143 if (xfermode) { |
144 xfermode->xfer32(dst, tmp, width, NULL); | 144 xfermode->xfer32(dst, tmp, width, NULL); |
145 } else { | 145 } else { |
146 fProc32(dst, tmp, width, fAlpha); | 146 fProc32(dst, tmp, width, fAlpha); |
147 } | 147 } |
148 | 148 |
149 dst = (uint32_t* SK_RESTRICT)((char*)dst + dstRB); | 149 dst = (uint32_t* SK_RESTRICT)((char*)dst + dstRB); |
150 src = (const uint32_t* SK_RESTRICT)((const char*)src + srcRB); | 150 src = (const uint32_t* SK_RESTRICT)((const char*)src + srcRB); |
151 } while (--height != 0); | 151 } while (--height != 0); |
152 } | 152 } |
153 | 153 |
(...skipping 22 matching lines...) Expand all Loading... |
176 y - fTop); | 176 y - fTop); |
177 size_t dstRB = fDevice->rowBytes(); | 177 size_t dstRB = fDevice->rowBytes(); |
178 size_t srcRB = fSource->rowBytes(); | 178 size_t srcRB = fSource->rowBytes(); |
179 SkPMColor* SK_RESTRICT buffer = fBuffer; | 179 SkPMColor* SK_RESTRICT buffer = fBuffer; |
180 SkColorFilter* colorFilter = fColorFilter; | 180 SkColorFilter* colorFilter = fColorFilter; |
181 SkXfermode* xfermode = fXfermode; | 181 SkXfermode* xfermode = fXfermode; |
182 | 182 |
183 do { | 183 do { |
184 fillbuffer(buffer, src, width); | 184 fillbuffer(buffer, src, width); |
185 | 185 |
186 if (NULL != colorFilter) { | 186 if (colorFilter) { |
187 colorFilter->filterSpan(buffer, width, buffer); | 187 colorFilter->filterSpan(buffer, width, buffer); |
188 } | 188 } |
189 if (NULL != xfermode) { | 189 if (xfermode) { |
190 xfermode->xfer32(dst, buffer, width, NULL); | 190 xfermode->xfer32(dst, buffer, width, NULL); |
191 } else { | 191 } else { |
192 fProc32(dst, buffer, width, fAlpha); | 192 fProc32(dst, buffer, width, fAlpha); |
193 } | 193 } |
194 | 194 |
195 dst = (SkPMColor* SK_RESTRICT)((char*)dst + dstRB); | 195 dst = (SkPMColor* SK_RESTRICT)((char*)dst + dstRB); |
196 src = (const SkPMColor16* SK_RESTRICT)((const char*)src + srcRB); | 196 src = (const SkPMColor16* SK_RESTRICT)((const char*)src + srcRB); |
197 } while (--height != 0); | 197 } while (--height != 0); |
198 } | 198 } |
199 | 199 |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
298 } else { | 298 } else { |
299 // this can handle alpha, but not xfermode or filter | 299 // this can handle alpha, but not xfermode or filter |
300 blitter = allocator->createT<Sprite_D32_S32>(source, alpha); | 300 blitter = allocator->createT<Sprite_D32_S32>(source, alpha); |
301 } | 301 } |
302 break; | 302 break; |
303 default: | 303 default: |
304 break; | 304 break; |
305 } | 305 } |
306 return blitter; | 306 return blitter; |
307 } | 307 } |
OLD | NEW |