Move non-trivial work in RectBench() to onPreDraw.
Saw this on a profile where rects was filtered out. ಠ_ಠ BUG= R=reed@google.com Author: mtklein@google.com Review URL: https://codereview.chromium.org/93703003 git-svn-id: http://skia.googlecode.com/svn/trunk@12500 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
8491d24bdc
commit
000d732ca7
@ -28,24 +28,7 @@ public:
|
||||
|
||||
RectBench(int shift, int stroke = 0)
|
||||
: fShift(shift)
|
||||
, fStroke(stroke) {
|
||||
SkRandom rand;
|
||||
const SkScalar offset = SK_Scalar1/3;
|
||||
for (int i = 0; i < N; i++) {
|
||||
int x = rand.nextU() % W;
|
||||
int y = rand.nextU() % H;
|
||||
int w = rand.nextU() % W;
|
||||
int h = rand.nextU() % H;
|
||||
w >>= shift;
|
||||
h >>= shift;
|
||||
x -= w/2;
|
||||
y -= h/2;
|
||||
fRects[i].set(SkIntToScalar(x), SkIntToScalar(y),
|
||||
SkIntToScalar(x+w), SkIntToScalar(y+h));
|
||||
fRects[i].offset(offset, offset);
|
||||
fColors[i] = rand.nextU() | 0xFF808080;
|
||||
}
|
||||
}
|
||||
, fStroke(stroke) {}
|
||||
|
||||
SkString fName;
|
||||
const char* computeName(const char root[]) {
|
||||
@ -62,6 +45,26 @@ protected:
|
||||
}
|
||||
|
||||
virtual const char* onGetName() { return computeName("rects"); }
|
||||
|
||||
virtual void onPreDraw() {
|
||||
SkRandom rand;
|
||||
const SkScalar offset = SK_Scalar1/3;
|
||||
for (int i = 0; i < N; i++) {
|
||||
int x = rand.nextU() % W;
|
||||
int y = rand.nextU() % H;
|
||||
int w = rand.nextU() % W;
|
||||
int h = rand.nextU() % H;
|
||||
w >>= fShift;
|
||||
h >>= fShift;
|
||||
x -= w/2;
|
||||
y -= h/2;
|
||||
fRects[i].set(SkIntToScalar(x), SkIntToScalar(y),
|
||||
SkIntToScalar(x+w), SkIntToScalar(y+h));
|
||||
fRects[i].offset(offset, offset);
|
||||
fColors[i] = rand.nextU() | 0xFF808080;
|
||||
}
|
||||
}
|
||||
|
||||
virtual void onDraw(const int loops, SkCanvas* canvas) {
|
||||
SkPaint paint;
|
||||
if (fStroke > 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user