add benches for drawBitmapRectToRect with slight scale/translate

git-svn-id: http://skia.googlecode.com/svn/trunk@7202 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
reed@google.com 2013-01-15 20:21:19 +00:00
Родитель 76f9e938df
Коммит 9318231178
1 изменённых файлов: 22 добавлений и 6 удалений

Просмотреть файл

@ -41,14 +41,16 @@ static void drawIntoBitmap(const SkBitmap& bm) {
class BitmapRectBench : public SkBenchmark {
SkBitmap fBitmap;
bool fDoFilter;
bool fSlightMatrix;
uint8_t fAlpha;
SkString fName;
SkRect fSrcR, fDstR;
enum { N = SkBENCHLOOP(300) };
public:
BitmapRectBench(void* param, U8CPU alpha, bool doFilter) : INHERITED(param) {
BitmapRectBench(void* param, U8CPU alpha, bool doFilter, bool slightMatrix) : INHERITED(param) {
fAlpha = SkToU8(alpha);
fDoFilter = doFilter;
fSlightMatrix = slightMatrix;
const int w = 128;
const int h = 128;
@ -61,11 +63,22 @@ public:
fSrcR.iset(0, 0, w, h);
fDstR.iset(0, 0, w, h);
if (slightMatrix) {
// want fractional translate
fDstR.offset(SK_Scalar1 / 3, SK_Scalar1 * 5 / 7);
// want enough to create a scale matrix, but not enough to scare
// off our sniffer which tries to see if the matrix is "effectively"
// translate-only.
fDstR.fRight += SK_Scalar1 / (w * 60);
}
}
protected:
virtual const char* onGetName() {
fName.printf("bitmaprect_%02X_%sfilter", fAlpha, fDoFilter ? "" : "no");
fName.printf("bitmaprect_%02X_%sfilter_%s",
fAlpha, fDoFilter ? "" : "no",
fSlightMatrix ? "trans" : "identity");
return fName.c_str();
}
@ -86,8 +99,11 @@ private:
typedef SkBenchmark INHERITED;
};
DEF_BENCH(return new BitmapRectBench(p, 0xFF, false))
DEF_BENCH(return new BitmapRectBench(p, 0x80, false))
DEF_BENCH(return new BitmapRectBench(p, 0xFF, true))
DEF_BENCH(return new BitmapRectBench(p, 0x80, true))
DEF_BENCH(return new BitmapRectBench(p, 0xFF, false, false))
DEF_BENCH(return new BitmapRectBench(p, 0x80, false, false))
DEF_BENCH(return new BitmapRectBench(p, 0xFF, true, false))
DEF_BENCH(return new BitmapRectBench(p, 0x80, true, false))
DEF_BENCH(return new BitmapRectBench(p, 0xFF, false, true))
DEF_BENCH(return new BitmapRectBench(p, 0xFF, true, true))