Remove SkBitmapShaderTemplate.

Remove files that are no longer needed:
src/core/SkBitmapShaderTemplate.h
src/core/SkBitmapShader16BilerpTemplate.h

BUG=skia:1976
R=scroggo@google.com

Author: dominikg@chromium.org

Review URL: https://codereview.chromium.org/225023028

git-svn-id: http://skia.googlecode.com/svn/trunk@14078 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
commit-bot@chromium.org 2014-04-07 18:01:09 +00:00
parent 94bd822801
commit c96268d792
2 changed files with 0 additions and 551 deletions

View File

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

View File

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