Move multiple calls to random() out of parameter lists so that the
evaluation order is consistent across compilers. git-svn-id: http://skia.googlecode.com/svn/trunk@2173 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
8185f33b38
commit
3f088e3651
@ -28,8 +28,14 @@ protected:
|
||||
}
|
||||
|
||||
static void fill_pts(SkPoint pts[], size_t n, SkRandom* rand) {
|
||||
for (size_t i = 0; i < n; i++)
|
||||
pts[i].set(rand->nextUScalar1() * 640, rand->nextUScalar1() * 480);
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
// Compute these independently and store in variables, rather
|
||||
// than in the parameter-passing expression, to get consistent
|
||||
// evaluation order across compilers.
|
||||
float y = rand->nextUScalar1() * 480;
|
||||
float x = rand->nextUScalar1() * 640;
|
||||
pts[i].set(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
virtual void onDraw(SkCanvas* canvas) {
|
||||
|
@ -38,9 +38,11 @@ protected:
|
||||
SkScalar y = rand.nextUScalar1() * H;
|
||||
SkScalar w = rand.nextUScalar1() * (W >> 2);
|
||||
SkScalar h = rand.nextUScalar1() * (H >> 2);
|
||||
SkScalar hoffset = rand.nextSScalar1();
|
||||
SkScalar woffset = rand.nextSScalar1();
|
||||
|
||||
r->set(x, y, x + w, y + h);
|
||||
r->offset(-w/2 + rand.nextSScalar1(), -h/2 + + rand.nextSScalar1());
|
||||
r->offset(-w/2 + woffset, -h/2 + hoffset);
|
||||
}
|
||||
|
||||
virtual void onDraw(SkCanvas* canvas) {
|
||||
|
@ -25,9 +25,11 @@ static void rnd_rect(SkRect* r, SkPaint* paint, SkRandom& rand) {
|
||||
SkScalar y = rand.nextUScalar1() * H;
|
||||
SkScalar w = rand.nextUScalar1() * (W >> 2);
|
||||
SkScalar h = rand.nextUScalar1() * (H >> 2);
|
||||
SkScalar hoffset = rand.nextSScalar1();
|
||||
SkScalar woffset = rand.nextSScalar1();
|
||||
|
||||
r->set(x, y, x + w, y + h);
|
||||
r->offset(-w/2 + rand.nextSScalar1(), -h/2 + + rand.nextSScalar1());
|
||||
r->offset(-w/2 + woffset, -h/2 + hoffset);
|
||||
|
||||
paint->setColor(rand.nextU());
|
||||
paint->setAlpha(0xFF);
|
||||
|
Loading…
Reference in New Issue
Block a user