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

Unified Diff: src/core/SkBitmapShaderTemplate.h

Issue 225023028: Remove SkBitmapShaderTemplate. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/core/SkBitmapShader16BilerpTemplate.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/core/SkBitmapShaderTemplate.h
diff --git a/src/core/SkBitmapShaderTemplate.h b/src/core/SkBitmapShaderTemplate.h
deleted file mode 100644
index 20e55188e03389e6f14db4e981160d3773787671..0000000000000000000000000000000000000000
--- a/src/core/SkBitmapShaderTemplate.h
+++ /dev/null
@@ -1,306 +0,0 @@
-
-/*
- * Copyright 2006 The Android Open Source Project
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-
-
-#ifndef NOFILTER_BITMAP_SHADER_PREAMBLE
- #define NOFILTER_BITMAP_SHADER_PREAMBLE(bitmap, rb)
-#endif
-#ifndef NOFILTER_BITMAP_SHADER_POSTAMBLE
- #define NOFILTER_BITMAP_SHADER_POSTAMBLE(bitmap)
-#endif
-#ifndef NOFILTER_BITMAP_SHADER_PREAMBLE16
- #define NOFILTER_BITMAP_SHADER_PREAMBLE16(bitmap, rb)
-#endif
-#ifndef NOFILTER_BITMAP_SHADER_POSTAMBLE16
- #define NOFILTER_BITMAP_SHADER_POSTAMBLE16(bitmap)
-#endif
-
-class NOFILTER_BITMAP_SHADER_CLASS : public HasSpan16_Sampler_BitmapShader {
-public:
- NOFILTER_BITMAP_SHADER_CLASS(const SkBitmap& src)
- : HasSpan16_Sampler_BitmapShader(src, false,
- NOFILTER_BITMAP_SHADER_TILEMODE,
- NOFILTER_BITMAP_SHADER_TILEMODE)
- {
- }
-
- virtual bool setContext(const SkBitmap& device, const SkPaint& paint, const SkMatrix& matrix)
- {
- if (!this->INHERITED::setContext(device, paint, matrix))
- return false;
-
-#ifdef NOFILTER_BITMAP_SHADER_USE_UNITINVERSE
- this->computeUnitInverse();
-#endif
- return true;
- }
-
- virtual void shadeSpan(int x, int y, SkPMColor dstC[], int count)
- {
- SkASSERT(count > 0);
-
-#ifdef NOFILTER_BITMAP_SHADER_SPRITEPROC32
- if ((this->getTotalInverse().getType() & ~SkMatrix::kTranslate_Mask) == 0)
- {
- NOFILTER_BITMAP_SHADER_SPRITEPROC32(this, x, y, dstC, count);
- return;
- }
-#endif
-
- unsigned scale = SkAlpha255To256(this->getPaintAlpha());
-#ifdef NOFILTER_BITMAP_SHADER_USE_UNITINVERSE
- const SkMatrix& inv = this->getUnitInverse();
- SkMatrix::MapPtProc invProc = this->getUnitInverseProc();
-#else
- const SkMatrix& inv = this->getTotalInverse();
- SkMatrix::MapPtProc invProc = this->getInverseMapPtProc();
-#endif
- const SkBitmap& srcBitmap = this->getSrcBitmap();
- unsigned srcMaxX = srcBitmap.width() - 1;
- unsigned srcMaxY = srcBitmap.height() - 1;
- unsigned srcRB = srcBitmap.rowBytes();
- SkFixed fx, fy, dx, dy;
-
- const NOFILTER_BITMAP_SHADER_TYPE* srcPixels = (const NOFILTER_BITMAP_SHADER_TYPE*)srcBitmap.getPixels();
- NOFILTER_BITMAP_SHADER_PREAMBLE(srcBitmap, srcRB);
-
- if (this->getInverseClass() == kPerspective_MatrixClass)
- {
- SkPerspIter iter(inv, SkIntToScalar(x) + SK_ScalarHalf,
- SkIntToScalar(y) + SK_ScalarHalf, count);
- while ((count = iter.next()) != 0)
- {
- const SkFixed* srcXY = iter.getXY();
-
-/* Do I need this?
-#ifndef NOFILTER_BITMAP_SHADER_USE_UNITINVERSE
- fx >>= level;
- fy >>= level;
-#endif
-*/
- if (256 == scale)
- {
- while (--count >= 0)
- {
- fx = *srcXY++;
- fy = *srcXY++;
- unsigned x = NOFILTER_BITMAP_SHADER_TILEPROC(fx, srcMaxX);
- unsigned y = NOFILTER_BITMAP_SHADER_TILEPROC(fy, srcMaxY);
- *dstC++ = NOFILTER_BITMAP_SHADER_SAMPLE_XY(srcPixels, x, y, srcRB);
- }
- }
- else
- {
- while (--count >= 0)
- {
- fx = *srcXY++;
- fy = *srcXY++;
- unsigned x = NOFILTER_BITMAP_SHADER_TILEPROC(fx, srcMaxX);
- unsigned y = NOFILTER_BITMAP_SHADER_TILEPROC(fy, srcMaxY);
- uint32_t c = NOFILTER_BITMAP_SHADER_SAMPLE_XY(srcPixels, x, y, srcRB);
- *dstC++ = SkAlphaMulQ(c, scale);
- }
- }
- }
- return;
- }
-
- // now init fx, fy, dx, dy
- {
- SkPoint srcPt;
- invProc(inv, SkIntToScalar(x) + SK_ScalarHalf,
- SkIntToScalar(y) + SK_ScalarHalf, &srcPt);
-
- fx = SkScalarToFixed(srcPt.fX);
- fy = SkScalarToFixed(srcPt.fY);
-
- if (this->getInverseClass() == kFixedStepInX_MatrixClass)
- (void)inv.fixedStepInX(SkIntToScalar(y), &dx, &dy);
- else
- {
- dx = SkScalarToFixed(inv.getScaleX());
- dy = SkScalarToFixed(inv.getSkewY());
- }
- }
-
-#ifndef NOFILTER_BITMAP_SHADER_USE_UNITINVERSE
- { int level = this->getMipLevel() >> 16;
- fx >>= level;
- fy >>= level;
- dx >>= level;
- dy >>= level;
- }
-#endif
-
- if (dy == 0)
- {
- int y_index = NOFILTER_BITMAP_SHADER_TILEPROC(fy, srcMaxY);
-// SkDEBUGF(("fy = %g, srcMaxY = %d, y_index = %d\n", SkFixedToFloat(fy), srcMaxY, y_index));
- srcPixels = (const NOFILTER_BITMAP_SHADER_TYPE*)((const char*)srcPixels + y_index * srcRB);
- if (scale == 256)
- while (--count >= 0)
- {
- unsigned x = NOFILTER_BITMAP_SHADER_TILEPROC(fx, srcMaxX);
- fx += dx;
- *dstC++ = NOFILTER_BITMAP_SHADER_SAMPLE_X(srcPixels, x);
- }
- else
- while (--count >= 0)
- {
- unsigned x = NOFILTER_BITMAP_SHADER_TILEPROC(fx, srcMaxX);
- SkPMColor c = NOFILTER_BITMAP_SHADER_SAMPLE_X(srcPixels, x);
- fx += dx;
- *dstC++ = SkAlphaMulQ(c, scale);
- }
- }
- else // dy != 0
- {
- if (scale == 256)
- while (--count >= 0)
- {
- unsigned x = NOFILTER_BITMAP_SHADER_TILEPROC(fx, srcMaxX);
- unsigned y = NOFILTER_BITMAP_SHADER_TILEPROC(fy, srcMaxY);
- fx += dx;
- fy += dy;
- *dstC++ = NOFILTER_BITMAP_SHADER_SAMPLE_XY(srcPixels, x, y, srcRB);
- }
- else
- while (--count >= 0)
- {
- unsigned x = NOFILTER_BITMAP_SHADER_TILEPROC(fx, srcMaxX);
- unsigned y = NOFILTER_BITMAP_SHADER_TILEPROC(fy, srcMaxY);
- SkPMColor c = NOFILTER_BITMAP_SHADER_SAMPLE_XY(srcPixels, x, y, srcRB);
- fx += dx;
- fy += dy;
- *dstC++ = SkAlphaMulQ(c, scale);
- }
- }
-
- NOFILTER_BITMAP_SHADER_POSTAMBLE(srcBitmap);
- }
-
- virtual void shadeSpan16(int x, int y, uint16_t dstC[], int count)
- {
- SkASSERT(count > 0);
- SkASSERT(this->getFlags() & SkShader::kHasSpan16_Flag);
-
-#ifdef NOFILTER_BITMAP_SHADER_SPRITEPROC16
- if ((this->getTotalInverse().getType() & ~SkMatrix::kTranslate_Mask) == 0)
- {
- NOFILTER_BITMAP_SHADER_SPRITEPROC16(this, x, y, dstC, count);
- return;
- }
-#endif
-
-#ifdef NOFILTER_BITMAP_SHADER_USE_UNITINVERSE
- const SkMatrix& inv = this->getUnitInverse();
- SkMatrix::MapPtProc invProc = this->getUnitInverseProc();
-#else
- const SkMatrix& inv = this->getTotalInverse();
- SkMatrix::MapPtProc invProc = this->getInverseMapPtProc();
-#endif
- const SkBitmap& srcBitmap = this->getSrcBitmap();
- unsigned srcMaxX = srcBitmap.width() - 1;
- unsigned srcMaxY = srcBitmap.height() - 1;
- unsigned srcRB = srcBitmap.rowBytes();
- SkFixed fx, fy, dx, dy;
-
- const NOFILTER_BITMAP_SHADER_TYPE* srcPixels = (const NOFILTER_BITMAP_SHADER_TYPE*)srcBitmap.getPixels();
- NOFILTER_BITMAP_SHADER_PREAMBLE16(srcBitmap, srcRB);
-
- if (this->getInverseClass() == kPerspective_MatrixClass)
- {
- SkPerspIter iter(inv, SkIntToScalar(x) + SK_ScalarHalf,
- SkIntToScalar(y) + SK_ScalarHalf, count);
- while ((count = iter.next()) != 0)
- {
- const SkFixed* srcXY = iter.getXY();
-
- while (--count >= 0)
- {
- fx = *srcXY++;
- fy = *srcXY++;
- unsigned x = NOFILTER_BITMAP_SHADER_TILEPROC(fx, srcMaxX);
- unsigned y = NOFILTER_BITMAP_SHADER_TILEPROC(fy, srcMaxY);
- *dstC++ = NOFILTER_BITMAP_SHADER_SAMPLE_XY16(srcPixels, x, y, srcRB);
- }
- }
- return;
- }
-
- // now init fx, fy, dx, dy
- {
- SkPoint srcPt;
- invProc(inv, SkIntToScalar(x) + SK_ScalarHalf,
- SkIntToScalar(y) + SK_ScalarHalf, &srcPt);
-
- fx = SkScalarToFixed(srcPt.fX);
- fy = SkScalarToFixed(srcPt.fY);
-
- if (this->getInverseClass() == kFixedStepInX_MatrixClass)
- (void)inv.fixedStepInX(SkIntToScalar(y), &dx, &dy);
- else
- {
- dx = SkScalarToFixed(inv.getScaleX());
- dy = SkScalarToFixed(inv.getSkewY());
- }
- }
-
-#ifndef NOFILTER_BITMAP_SHADER_USE_UNITINVERSE
- { int level = this->getMipLevel() >> 16;
- fx >>= level;
- fy >>= level;
- dx >>= level;
- dy >>= level;
- }
-#endif
-
- if (dy == 0)
- {
- srcPixels = (const NOFILTER_BITMAP_SHADER_TYPE*)((const char*)srcPixels + NOFILTER_BITMAP_SHADER_TILEPROC(fy, srcMaxY) * srcRB);
- do {
- unsigned x = NOFILTER_BITMAP_SHADER_TILEPROC(fx, srcMaxX);
- fx += dx;
- *dstC++ = NOFILTER_BITMAP_SHADER_SAMPLE_X16(srcPixels, x);
- } while (--count != 0);
- }
- else // dy != 0
- {
- do {
- unsigned x = NOFILTER_BITMAP_SHADER_TILEPROC(fx, srcMaxX);
- unsigned y = NOFILTER_BITMAP_SHADER_TILEPROC(fy, srcMaxY);
- fx += dx;
- fy += dy;
- *dstC++ = NOFILTER_BITMAP_SHADER_SAMPLE_XY16(srcPixels, x, y, srcRB);
- } while (--count != 0);
- }
-
- NOFILTER_BITMAP_SHADER_POSTAMBLE16(srcBitmap);
- }
-private:
- typedef HasSpan16_Sampler_BitmapShader INHERITED;
-};
-
-#undef NOFILTER_BITMAP_SHADER_CLASS
-#undef NOFILTER_BITMAP_SHADER_TYPE
-#undef NOFILTER_BITMAP_SHADER_PREAMBLE
-#undef NOFILTER_BITMAP_SHADER_POSTAMBLE
-#undef NOFILTER_BITMAP_SHADER_SAMPLE_X //(x)
-#undef NOFILTER_BITMAP_SHADER_SAMPLE_XY //(x, y, rowBytes)
-#undef NOFILTER_BITMAP_SHADER_TILEMODE
-#undef NOFILTER_BITMAP_SHADER_TILEPROC
-
-#undef NOFILTER_BITMAP_SHADER_PREAMBLE16
-#undef NOFILTER_BITMAP_SHADER_POSTAMBLE16
-#undef NOFILTER_BITMAP_SHADER_SAMPLE_X16 //(x)
-#undef NOFILTER_BITMAP_SHADER_SAMPLE_XY16 //(x, y, rowBytes)
-
-#undef NOFILTER_BITMAP_SHADER_USE_UNITINVERSE
-#undef NOFILTER_BITMAP_SHADER_SPRITEPROC16
-#undef NOFILTER_BITMAP_SHADER_SPRITEPROC32
« no previous file with comments | « src/core/SkBitmapShader16BilerpTemplate.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698