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

Side by Side Diff: tests/DeviceLooperTest.cpp

Issue 1164373003: Revert of change SkDraw and all Blitters to use pixmap instead of bitmap (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 6 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 unified diff | Download patch
« no previous file with comments | « src/utils/SkTextureCompressor_Blitter.h ('k') | tests/TextureCompressionTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkDeviceLooper.h" 8 #include "SkDeviceLooper.h"
9 #include "SkRasterClip.h" 9 #include "SkRasterClip.h"
10 #include "Test.h" 10 #include "Test.h"
11 11
12 static void make_pm(SkAutoPixmapStorage* pixmap, int w, int h) { 12 static void make_bm(SkBitmap* bm, int w, int h) {
13 pixmap->alloc(SkImageInfo::Make(w, h, kAlpha_8_SkColorType, kPremul_SkAlphaT ype)); 13 bm->allocPixels(SkImageInfo::Make(w, h, kAlpha_8_SkColorType,
14 kPremul_SkAlphaType));
14 } 15 }
15 16
16 static bool equal(const SkRasterClip& a, const SkRasterClip& b) { 17 static bool equal(const SkRasterClip& a, const SkRasterClip& b) {
17 if (a.isBW()) { 18 if (a.isBW()) {
18 return b.isBW() && a.bwRgn() == b.bwRgn(); 19 return b.isBW() && a.bwRgn() == b.bwRgn();
19 } else { 20 } else {
20 return a.isAA() && a.aaRgn() == b.aaRgn(); 21 return a.isAA() && a.aaRgn() == b.aaRgn();
21 } 22 }
22 } 23 }
23 24
24 static const struct { 25 static const struct {
25 SkISize fDevSize; 26 SkISize fDevSize;
26 SkIRect fRCBounds; 27 SkIRect fRCBounds;
27 SkIRect fRect; 28 SkIRect fRect;
28 } gRec[] = { 29 } gRec[] = {
29 { { 4000, 10 }, { 0, 0, 4000, 10 }, { 0, 0, 4000, 4000 } }, 30 { { 4000, 10 }, { 0, 0, 4000, 10 }, { 0, 0, 4000, 4000 } },
30 { { 10, 4000 }, { 0, 0, 10, 4000 }, { 0, 0, 4000, 4000 } }, 31 { { 10, 4000 }, { 0, 0, 10, 4000 }, { 0, 0, 4000, 4000 } },
31 // very large devce, small rect 32 // very large devce, small rect
32 { { 32000, 10 }, { 0, 0, 32000, 10 }, { 0, 0, 4000, 4000 } }, 33 { { 32000, 10 }, { 0, 0, 32000, 10 }, { 0, 0, 4000, 4000 } },
33 { { 10, 32000 }, { 0, 0, 10, 32000 }, { 0, 0, 4000, 4000 } }, 34 { { 10, 32000 }, { 0, 0, 10, 32000 }, { 0, 0, 4000, 4000 } },
34 // very large device, small clip 35 // very large device, small clip
35 { { 32000, 10 }, { 0, 0, 4000, 10 }, { 0, 0, 32000, 32000 } }, 36 { { 32000, 10 }, { 0, 0, 4000, 10 }, { 0, 0, 32000, 32000 } },
36 { { 10, 32000 }, { 0, 0, 10, 4000 }, { 0, 0, 32000, 32000 } }, 37 { { 10, 32000 }, { 0, 0, 10, 4000 }, { 0, 0, 32000, 32000 } },
37 }; 38 };
38 39
39 static void test_simple(skiatest::Reporter* reporter) { 40 static void test_simple(skiatest::Reporter* reporter) {
40 41
41 for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); ++i) { 42 for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); ++i) {
42 SkAutoPixmapStorage pmap; 43 SkBitmap bitmap;
43 make_pm(&pmap, gRec[i].fDevSize.width(), gRec[i].fDevSize.height()); 44 make_bm(&bitmap, gRec[i].fDevSize.width(), gRec[i].fDevSize.height());
44 45
45 SkRasterClip rc(gRec[i].fRCBounds); 46 SkRasterClip rc(gRec[i].fRCBounds);
46 47
47 for (int aa = 0; aa <= 1; ++aa) { 48 for (int aa = 0; aa <= 1; ++aa) {
48 SkDeviceLooper looper(pmap, rc, gRec[i].fRect, SkToBool(aa)); 49 SkDeviceLooper looper(bitmap, rc, gRec[i].fRect, SkToBool(aa));
49 50
50 bool valid = looper.next(); 51 bool valid = looper.next();
51 REPORTER_ASSERT(reporter, valid); 52 REPORTER_ASSERT(reporter, valid);
52 if (valid) { 53 if (valid) {
53 REPORTER_ASSERT(reporter, looper.getPixmap().width() == pmap.wid th()); 54 REPORTER_ASSERT(reporter, looper.getBitmap().width() == bitmap.w idth());
54 REPORTER_ASSERT(reporter, looper.getPixmap().height() == pmap.he ight()); 55 REPORTER_ASSERT(reporter, looper.getBitmap().height() == bitmap. height());
55 REPORTER_ASSERT(reporter, equal(looper.getRC(), rc)); 56 REPORTER_ASSERT(reporter, equal(looper.getRC(), rc));
56 57
57 REPORTER_ASSERT(reporter, !looper.next()); 58 REPORTER_ASSERT(reporter, !looper.next());
58 } 59 }
59 } 60 }
60 // test that a rect that doesn't intersect returns no loops 61 // test that a rect that doesn't intersect returns no loops
61 { 62 {
62 SkIRect r = rc.getBounds(); 63 SkIRect r = rc.getBounds();
63 r.offset(r.width(), 0); 64 r.offset(r.width(), 0);
64 SkDeviceLooper looper(pmap, rc, r, false); 65 SkDeviceLooper looper(bitmap, rc, r, false);
65 REPORTER_ASSERT(reporter, !looper.next()); 66 REPORTER_ASSERT(reporter, !looper.next());
66 } 67 }
67 } 68 }
68 } 69 }
69 70
70 // mask-bits are interpreted as the areas where the clip is visible 71 // mask-bits are interpreted as the areas where the clip is visible
71 // [ 0x01 0x02 ] 72 // [ 0x01 0x02 ]
72 // [ 0x04 0x08 ] 73 // [ 0x04 0x08 ]
73 // 74 //
74 static void make_rgn(SkRegion* rgn, int w, int h, unsigned mask) { 75 static void make_rgn(SkRegion* rgn, int w, int h, unsigned mask) {
(...skipping 26 matching lines...) Expand all
101 bool fAA; 102 bool fAA;
102 } const gRec[] = { 103 } const gRec[] = {
103 { { BW_SIZE, BW_SIZE }, false }, 104 { { BW_SIZE, BW_SIZE }, false },
104 { { AA_SIZE, AA_SIZE }, true }, 105 { { AA_SIZE, AA_SIZE }, true },
105 }; 106 };
106 107
107 for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); ++i) { 108 for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); ++i) {
108 const int w = gRec[i].fSize.width(); 109 const int w = gRec[i].fSize.width();
109 const int h = gRec[i].fSize.height(); 110 const int h = gRec[i].fSize.height();
110 111
111 SkAutoPixmapStorage pmap; 112 SkBitmap bitmap;
112 make_pm(&pmap, w, h); 113 make_bm(&bitmap, w, h);
113 114
114 const SkIRect rect = SkIRect::MakeWH(w, h); 115 const SkIRect rect = SkIRect::MakeWH(w, h);
115 116
116 // mask-bits are interpreted as the areas where the clip is visible 117 // mask-bits are interpreted as the areas where the clip is visible
117 // [ 0x01 0x02 ] 118 // [ 0x01 0x02 ]
118 // [ 0x04 0x08 ] 119 // [ 0x04 0x08 ]
119 // 120 //
120 for (int mask = 0; mask <= 15; ++mask) { 121 for (int mask = 0; mask <= 15; ++mask) {
121 SkRegion rgn; 122 SkRegion rgn;
122 make_rgn(&rgn, w, h, mask); 123 make_rgn(&rgn, w, h, mask);
123 124
124 SkRasterClip rc; 125 SkRasterClip rc;
125 rc.op(rgn, SkRegion::kReplace_Op); 126 rc.op(rgn, SkRegion::kReplace_Op);
126 127
127 SkDeviceLooper looper(pmap, rc, rect, gRec[i].fAA); 128 SkDeviceLooper looper(bitmap, rc, rect, gRec[i].fAA);
128 while (looper.next()) { 129 while (looper.next()) {
129 REPORTER_ASSERT(reporter, !looper.getRC().isEmpty()); 130 REPORTER_ASSERT(reporter, !looper.getRC().isEmpty());
130 } 131 }
131 } 132 }
132 } 133 }
133 } 134 }
134 135
135 DEF_TEST(DeviceLooper, reporter) { 136 DEF_TEST(DeviceLooper, reporter) {
136 test_simple(reporter); 137 test_simple(reporter);
137 test_complex(reporter); 138 test_complex(reporter);
138 } 139 }
OLDNEW
« no previous file with comments | « src/utils/SkTextureCompressor_Blitter.h ('k') | tests/TextureCompressionTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698