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

Unified Diff: src/core/SkBitmapShader16BilerpTemplate.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 | « no previous file | src/core/SkBitmapShaderTemplate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/core/SkBitmapShader16BilerpTemplate.h
diff --git a/src/core/SkBitmapShader16BilerpTemplate.h b/src/core/SkBitmapShader16BilerpTemplate.h
deleted file mode 100644
index 435b806bb287a9a62d1d1358077bac4f76cd7d81..0000000000000000000000000000000000000000
--- a/src/core/SkBitmapShader16BilerpTemplate.h
+++ /dev/null
@@ -1,245 +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.
- */
-
-
-#include "SkFilterProc.h"
-
-class BILERP_BITMAP16_SHADER_CLASS : public HasSpan16_Sampler_BitmapShader {
-public:
- BILERP_BITMAP16_SHADER_CLASS(const SkBitmap& src)
- : HasSpan16_Sampler_BitmapShader(src, true,
- SkShader::kClamp_TileMode,
- SkShader::kClamp_TileMode)
- {
- }
-
- virtual void shadeSpan(int x, int y, SkPMColor dstC[], int count)
- {
- SkASSERT(count > 0);
-
- U8CPU alpha = this->getPaintAlpha();
-
- const SkMatrix& inv = this->getTotalInverse();
- const SkBitmap& srcBitmap = this->getSrcBitmap();
- unsigned srcMaxX = srcBitmap.width() - 1;
- unsigned srcMaxY = srcBitmap.height() - 1;
- unsigned srcRB = srcBitmap.rowBytes();
-
- BILERP_BITMAP16_SHADER_PREAMBLE(srcBitmap);
-
- const SkFilterProc* proc_table = SkGetBilinearFilterProcTable();
- const BILERP_BITMAP16_SHADER_TYPE* srcPixels = (const BILERP_BITMAP16_SHADER_TYPE*)srcBitmap.getPixels();
-
- 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)
- {
- SkFixed fx = *srcXY++ - SK_FixedHalf;
- SkFixed fy = *srcXY++ - SK_FixedHalf;
- int ix = fx >> 16;
- int iy = fy >> 16;
- int x = SkClampMax(ix, srcMaxX);
- int y = SkClampMax(iy, srcMaxY);
-
- const BILERP_BITMAP16_SHADER_TYPE *p00, *p01, *p10, *p11;
-
- p00 = p01 = ((const BILERP_BITMAP16_SHADER_TYPE*)((const char*)srcPixels + y * srcRB)) + x;
- if ((unsigned)ix < srcMaxX)
- p01 += 1;
- p10 = p00;
- p11 = p01;
- if ((unsigned)iy < srcMaxY)
- {
- p10 = (const BILERP_BITMAP16_SHADER_TYPE*)((const char*)p10 + srcRB);
- p11 = (const BILERP_BITMAP16_SHADER_TYPE*)((const char*)p11 + srcRB);
- }
-
- SkFilterProc proc = SkGetBilinearFilterProc(proc_table, fx, fy);
- uint32_t c = proc(SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p00)),
- SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p01)),
- SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p10)),
- SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p11)));
-
- *dstC++ = expanded_rgb16_to_8888(c, alpha);
- }
- }
- }
- else // linear case
- {
- SkFixed fx, fy, dx, dy;
-
- // now init fx, fy, dx, dy
- {
- SkPoint srcPt;
- this->getInverseMapPtProc()(inv, SkIntToScalar(x) + SK_ScalarHalf,
- SkIntToScalar(y) + SK_ScalarHalf, &srcPt);
-
- fx = SkScalarToFixed(srcPt.fX) - SK_FixedHalf;
- fy = SkScalarToFixed(srcPt.fY) - SK_FixedHalf;
-
- if (this->getInverseClass() == kFixedStepInX_MatrixClass)
- (void)inv.fixedStepInX(SkIntToScalar(y), &dx, &dy);
- else
- {
- dx = SkScalarToFixed(inv.getScaleX());
- dy = SkScalarToFixed(inv.getSkewY());
- }
- }
-
- do {
- int ix = fx >> 16;
- int iy = fy >> 16;
-
- const BILERP_BITMAP16_SHADER_TYPE *p00, *p01, *p10, *p11;
-
- p00 = p01 = ((const BILERP_BITMAP16_SHADER_TYPE*)((const char*)srcPixels +
- SkClampMax(iy, srcMaxY) * srcRB)) +
- SkClampMax(ix, srcMaxX);
- if ((unsigned)ix < srcMaxX)
- p01 += 1;
- p10 = p00;
- p11 = p01;
- if ((unsigned)iy < srcMaxY)
- {
- p10 = (const BILERP_BITMAP16_SHADER_TYPE*)((const char*)p10 + srcRB);
- p11 = (const BILERP_BITMAP16_SHADER_TYPE*)((const char*)p11 + srcRB);
- }
-
- SkFilterProc proc = SkGetBilinearFilterProc(proc_table, fx, fy);
- uint32_t c = proc(SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p00)),
- SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p01)),
- SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p10)),
- SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p11)));
- *dstC++ = expanded_rgb16_to_8888(c, alpha);
-
- fx += dx;
- fy += dy;
- } while (--count != 0);
- }
- BILERP_BITMAP16_SHADER_POSTAMBLE(srcBitmap);
- }
-
- virtual void shadeSpan16(int x, int y, uint16_t dstC[], int count)
- {
- SkASSERT(count > 0);
-
- const SkMatrix& inv = this->getTotalInverse();
- const SkBitmap& srcBitmap = this->getSrcBitmap();
- unsigned srcMaxX = srcBitmap.width() - 1;
- unsigned srcMaxY = srcBitmap.height() - 1;
- unsigned srcRB = srcBitmap.rowBytes();
-
- BILERP_BITMAP16_SHADER_PREAMBLE(srcBitmap);
-
- const SkFilterProc* proc_table = SkGetBilinearFilterProcTable();
- const BILERP_BITMAP16_SHADER_TYPE* srcPixels = (const BILERP_BITMAP16_SHADER_TYPE*)srcBitmap.getPixels();
-
- 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)
- {
- SkFixed fx = *srcXY++ - SK_FixedHalf;
- SkFixed fy = *srcXY++ - SK_FixedHalf;
- int ix = fx >> 16;
- int iy = fy >> 16;
-
- const BILERP_BITMAP16_SHADER_TYPE *p00, *p01, *p10, *p11;
-
- p00 = p01 = ((const BILERP_BITMAP16_SHADER_TYPE*)((const char*)srcPixels +
- SkClampMax(iy, srcMaxY) * srcRB)) +
- SkClampMax(ix, srcMaxX);
- if ((unsigned)ix < srcMaxX)
- p01 += 1;
- p10 = p00;
- p11 = p01;
- if ((unsigned)iy < srcMaxY)
- {
- p10 = (const BILERP_BITMAP16_SHADER_TYPE*)((const char*)p10 + srcRB);
- p11 = (const BILERP_BITMAP16_SHADER_TYPE*)((const char*)p11 + srcRB);
- }
-
- SkFilterProc proc = SkGetBilinearFilterProc(proc_table, fx, fy);
- uint32_t c = proc(SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p00)),
- SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p01)),
- SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p10)),
- SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p11)));
- *dstC++ = SkCompact_rgb_16(c);
- }
- }
- }
- else // linear case
- {
- SkFixed fx, fy, dx, dy;
-
- // now init fx, fy, dx, dy
- {
- SkPoint srcPt;
- this->getInverseMapPtProc()(inv, SkIntToScalar(x) + SK_ScalarHalf,
- SkIntToScalar(y) + SK_ScalarHalf, &srcPt);
-
- fx = SkScalarToFixed(srcPt.fX) - SK_FixedHalf;
- fy = SkScalarToFixed(srcPt.fY) - SK_FixedHalf;
-
- if (this->getInverseClass() == kFixedStepInX_MatrixClass)
- (void)inv.fixedStepInX(SkIntToScalar(y), &dx, &dy);
- else
- {
- dx = SkScalarToFixed(inv.getScaleX());
- dy = SkScalarToFixed(inv.getSkewY());
- }
- }
-
- do {
- int ix = fx >> 16;
- int iy = fy >> 16;
-
- const BILERP_BITMAP16_SHADER_TYPE *p00, *p01, *p10, *p11;
-
- p00 = p01 = ((const BILERP_BITMAP16_SHADER_TYPE*)((const char*)srcPixels +
- SkClampMax(iy, srcMaxY) * srcRB)) +
- SkClampMax(ix, srcMaxX);
- if ((unsigned)ix < srcMaxX)
- p01 += 1;
- p10 = p00;
- p11 = p01;
- if ((unsigned)iy < srcMaxY)
- {
- p10 = (const BILERP_BITMAP16_SHADER_TYPE*)((const char*)p10 + srcRB);
- p11 = (const BILERP_BITMAP16_SHADER_TYPE*)((const char*)p11 + srcRB);
- }
-
- SkFilterProc proc = SkGetBilinearFilterProc(proc_table, fx, fy);
- uint32_t c = proc(SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p00)),
- SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p01)),
- SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p10)),
- SkExpand_rgb_16(BILERP_BITMAP16_SHADER_PIXEL(*p11)));
- *dstC++ = SkCompact_rgb_16(c);
-
- fx += dx;
- fy += dy;
- } while (--count != 0);
- }
- BILERP_BITMAP16_SHADER_POSTAMBLE(srcBitmap);
- }
-};
-
-#undef BILERP_BITMAP16_SHADER_CLASS
-#undef BILERP_BITMAP16_SHADER_TYPE
-#undef BILERP_BITMAP16_SHADER_PREAMBLE
-#undef BILERP_BITMAP16_SHADER_PIXEL
-#undef BILERP_BITMAP16_SHADER_POSTAMBLE
« no previous file with comments | « no previous file | src/core/SkBitmapShaderTemplate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698