Index: skia/sgl/SkBitmapProcState_sample.h |
=================================================================== |
--- skia/sgl/SkBitmapProcState_sample.h (revision 16859) |
+++ skia/sgl/SkBitmapProcState_sample.h (working copy) |
@@ -1,207 +0,0 @@ |
- |
-#if DSTSIZE==32 |
- #define DSTTYPE SkPMColor |
-#elif DSTSIZE==16 |
- #define DSTTYPE uint16_t |
-#else |
- #error "need DSTSIZE to be 32 or 16" |
-#endif |
- |
-static void MAKENAME(_nofilter_DXDY)(const SkBitmapProcState& s, |
- const uint32_t* SK_RESTRICT xy, |
- int count, DSTTYPE* SK_RESTRICT colors) { |
- SkASSERT(count > 0 && colors != NULL); |
- SkASSERT(s.fDoFilter == false); |
- SkDEBUGCODE(CHECKSTATE(s);) |
- |
-#ifdef PREAMBLE |
- PREAMBLE(s); |
-#endif |
- const char* SK_RESTRICT srcAddr = (const char*)s.fBitmap->getPixels(); |
- int i, rb = s.fBitmap->rowBytes(); |
- |
- uint32_t XY; |
- SRCTYPE src; |
- |
- for (i = (count >> 1); i > 0; --i) { |
- XY = *xy++; |
- SkASSERT((XY >> 16) < (unsigned)s.fBitmap->height() && |
- (XY & 0xFFFF) < (unsigned)s.fBitmap->width()); |
- src = ((const SRCTYPE*)(srcAddr + (XY >> 16) * rb))[XY & 0xFFFF]; |
- *colors++ = RETURNDST(src); |
- |
- XY = *xy++; |
- SkASSERT((XY >> 16) < (unsigned)s.fBitmap->height() && |
- (XY & 0xFFFF) < (unsigned)s.fBitmap->width()); |
- src = ((const SRCTYPE*)(srcAddr + (XY >> 16) * rb))[XY & 0xFFFF]; |
- *colors++ = RETURNDST(src); |
- } |
- if (count & 1) { |
- XY = *xy++; |
- SkASSERT((XY >> 16) < (unsigned)s.fBitmap->height() && |
- (XY & 0xFFFF) < (unsigned)s.fBitmap->width()); |
- src = ((const SRCTYPE*)(srcAddr + (XY >> 16) * rb))[XY & 0xFFFF]; |
- *colors++ = RETURNDST(src); |
- } |
- |
-#ifdef POSTAMBLE |
- POSTAMBLE(s); |
-#endif |
-} |
- |
-static void MAKENAME(_nofilter_DX)(const SkBitmapProcState& s, |
- const uint32_t* SK_RESTRICT xy, |
- int count, DSTTYPE* SK_RESTRICT colors) { |
- SkASSERT(count > 0 && colors != NULL); |
- SkASSERT(s.fInvType <= (SkMatrix::kTranslate_Mask | SkMatrix::kScale_Mask)); |
- SkASSERT(s.fDoFilter == false); |
- SkDEBUGCODE(CHECKSTATE(s);) |
- |
-#ifdef PREAMBLE |
- PREAMBLE(s); |
-#endif |
- const SRCTYPE* SK_RESTRICT srcAddr = (const SRCTYPE*)s.fBitmap->getPixels(); |
- int i; |
- |
- // bump srcAddr to the proper row, since we're told Y never changes |
- SkASSERT((unsigned)xy[0] < (unsigned)s.fBitmap->height()); |
- srcAddr = (const SRCTYPE*)((const char*)srcAddr + |
- xy[0] * s.fBitmap->rowBytes()); |
- // buffer is y32, x16, x16, x16, x16, x16 |
- const uint16_t* SK_RESTRICT xx = (const uint16_t*)(xy + 1); |
- |
- SRCTYPE src; |
- |
- for (i = (count >> 2); i > 0; --i) { |
- SkASSERT(*xx < (unsigned)s.fBitmap->width()); |
- src = srcAddr[*xx++]; *colors++ = RETURNDST(src); |
- |
- SkASSERT(*xx < (unsigned)s.fBitmap->width()); |
- src = srcAddr[*xx++]; *colors++ = RETURNDST(src); |
- |
- SkASSERT(*xx < (unsigned)s.fBitmap->width()); |
- src = srcAddr[*xx++]; *colors++ = RETURNDST(src); |
- |
- SkASSERT(*xx < (unsigned)s.fBitmap->width()); |
- src = srcAddr[*xx++]; *colors++ = RETURNDST(src); |
- } |
- for (i = (count & 3); i > 0; --i) { |
- SkASSERT(*xx < (unsigned)s.fBitmap->width()); |
- src = srcAddr[*xx++]; *colors++ = RETURNDST(src); |
- } |
- |
-#ifdef POSTAMBLE |
- POSTAMBLE(s); |
-#endif |
-} |
- |
-/////////////////////////////////////////////////////////////////////////////// |
- |
-static void MAKENAME(_filter_DX)(const SkBitmapProcState& s, |
- const uint32_t* SK_RESTRICT xy, |
- int count, DSTTYPE* SK_RESTRICT colors) { |
- SkASSERT(count > 0 && colors != NULL); |
- SkASSERT(s.fDoFilter); |
- SkDEBUGCODE(CHECKSTATE(s);) |
- |
-#ifdef PREAMBLE |
- PREAMBLE(s); |
-#endif |
- const char* SK_RESTRICT srcAddr = (const char*)s.fBitmap->getPixels(); |
- unsigned rb = s.fBitmap->rowBytes(); |
- unsigned subY; |
- const SRCTYPE* SK_RESTRICT row0; |
- const SRCTYPE* SK_RESTRICT row1; |
- |
- // setup row ptrs and update proc_table |
- { |
- uint32_t XY = *xy++; |
- unsigned y0 = XY >> 14; |
- row0 = (const SRCTYPE*)(srcAddr + (y0 >> 4) * rb); |
- row1 = (const SRCTYPE*)(srcAddr + (XY & 0x3FFF) * rb); |
- subY = y0 & 0xF; |
- } |
- |
- do { |
- uint32_t XX = *xy++; // x0:14 | 4 | x1:14 |
- unsigned x0 = XX >> 14; |
- unsigned x1 = XX & 0x3FFF; |
- unsigned subX = x0 & 0xF; |
- x0 >>= 4; |
- |
- uint32_t c = FILTER_PROC(subX, subY, |
- SRC_TO_FILTER(row0[x0]), |
- SRC_TO_FILTER(row0[x1]), |
- SRC_TO_FILTER(row1[x0]), |
- SRC_TO_FILTER(row1[x1])); |
- *colors++ = FILTER_TO_DST(c); |
- |
- } while (--count != 0); |
- |
-#ifdef POSTAMBLE |
- POSTAMBLE(s); |
-#endif |
-} |
-static void MAKENAME(_filter_DXDY)(const SkBitmapProcState& s, |
- const uint32_t* SK_RESTRICT xy, |
- int count, DSTTYPE* SK_RESTRICT colors) { |
- SkASSERT(count > 0 && colors != NULL); |
- SkASSERT(s.fDoFilter); |
- SkDEBUGCODE(CHECKSTATE(s);) |
- |
-#ifdef PREAMBLE |
- PREAMBLE(s); |
-#endif |
- const char* SK_RESTRICT srcAddr = (const char*)s.fBitmap->getPixels(); |
- int rb = s.fBitmap->rowBytes(); |
- |
- do { |
- uint32_t data = *xy++; |
- unsigned y0 = data >> 14; |
- unsigned y1 = data & 0x3FFF; |
- unsigned subY = y0 & 0xF; |
- y0 >>= 4; |
- |
- data = *xy++; |
- unsigned x0 = data >> 14; |
- unsigned x1 = data & 0x3FFF; |
- unsigned subX = x0 & 0xF; |
- x0 >>= 4; |
- |
- const SRCTYPE* SK_RESTRICT row0 = (const SRCTYPE*)(srcAddr + y0 * rb); |
- const SRCTYPE* SK_RESTRICT row1 = (const SRCTYPE*)(srcAddr + y1 * rb); |
- |
- uint32_t c = FILTER_PROC(subX, subY, |
- SRC_TO_FILTER(row0[x0]), |
- SRC_TO_FILTER(row0[x1]), |
- SRC_TO_FILTER(row1[x0]), |
- SRC_TO_FILTER(row1[x1])); |
- *colors++ = FILTER_TO_DST(c); |
- } while (--count != 0); |
- |
-#ifdef POSTAMBLE |
- POSTAMBLE(s); |
-#endif |
-} |
- |
-#undef MAKENAME |
-#undef DSTSIZE |
-#undef DSTTYPE |
-#undef SRCTYPE |
-#undef CHECKSTATE |
-#undef RETURNDST |
-#undef SRC_TO_FILTER |
-#undef FILTER_TO_DST |
- |
-#ifdef PREAMBLE |
- #undef PREAMBLE |
-#endif |
-#ifdef POSTAMBLE |
- #undef POSTAMBLE |
-#endif |
- |
-#undef FILTER_PROC_TYPE |
-#undef GET_FILTER_TABLE |
-#undef GET_FILTER_ROW |
-#undef GET_FILTER_ROW_PROC |
-#undef GET_FILTER_PROC |