| Index: gm/aaxfermodes.cpp
|
| diff --git a/gm/aaxfermodes.cpp b/gm/aaxfermodes.cpp
|
| index 9e07f8d7518acb4f77bae854fd820e19c5a92e11..14073df53820be4790de50b87b55c433e5ec6a01 100644
|
| --- a/gm/aaxfermodes.cpp
|
| +++ b/gm/aaxfermodes.cpp
|
| @@ -16,7 +16,7 @@ enum {
|
| kShapeSize = 22,
|
| kShapeSpacing = 36,
|
| kShapeTypeSpacing = 4 * kShapeSpacing / 3,
|
| - kPaintSpacing = 3 * kShapeTypeSpacing,
|
| + kPaintSpacing = 4 * kShapeTypeSpacing,
|
| kLabelSpacing = 3 * kShapeSize,
|
| kMargin = kShapeSpacing / 2,
|
| kXfermodeTypeSpacing = kLabelSpacing + 2 * kPaintSpacing + kShapeTypeSpacing,
|
| @@ -35,8 +35,9 @@ enum Shape {
|
| kSquare_Shape,
|
| kDiamond_Shape,
|
| kOval_Shape,
|
| + kConcave_Shape,
|
|
|
| - kLast_Shape = kOval_Shape
|
| + kLast_Shape = kConcave_Shape
|
| };
|
|
|
| namespace skiagm {
|
| @@ -80,9 +81,16 @@ protected:
|
| {radius, 0},
|
| {0, 1.33f * radius}
|
| };
|
| - fPath.moveTo(pts[0]);
|
| - fPath.quadTo(pts[1], pts[2]);
|
| - fPath.quadTo(pts[3], pts[0]);
|
| + fOval.moveTo(pts[0]);
|
| + fOval.quadTo(pts[1], pts[2]);
|
| + fOval.quadTo(pts[3], pts[0]);
|
| +
|
| + fConcave.moveTo(-radius, 0);
|
| + fConcave.quadTo(0, 0, 0, -radius);
|
| + fConcave.quadTo(0, 0, radius, 0);
|
| + fConcave.quadTo(0, 0, 0, radius);
|
| + fConcave.quadTo(0, 0, -radius, 0);
|
| + fConcave.close();
|
| }
|
|
|
| void draw_pass(SkCanvas* canvas, DrawingPass drawingPass) {
|
| @@ -102,11 +110,12 @@ protected:
|
| if (kShape_Pass == drawingPass) {
|
| fLabelPaint.setTextAlign(SkPaint::kCenter_Align);
|
| canvas->drawText("Src Unknown", sizeof("Src Unknown") - 1,
|
| - kLabelSpacing + kShapeSpacing / 2 + kShapeTypeSpacing,
|
| + kLabelSpacing + kShapeTypeSpacing * 1.5f + kShapeSpacing / 2,
|
| kSubtitleSpacing / 2 + fLabelPaint.getTextSize() / 3, fLabelPaint);
|
| canvas->drawText("Src Opaque", sizeof("Src Opaque") - 1,
|
| - kLabelSpacing + kShapeSpacing / 2 + kShapeTypeSpacing + kPaintSpacing,
|
| - kSubtitleSpacing / 2 + fLabelPaint.getTextSize() / 3, fLabelPaint);
|
| + kLabelSpacing + kShapeTypeSpacing * 1.5f + kShapeSpacing / 2 +
|
| + kPaintSpacing, kSubtitleSpacing / 2 + fLabelPaint.getTextSize() / 3,
|
| + fLabelPaint);
|
| }
|
|
|
| canvas->translate(0, kSubtitleSpacing + kShapeSpacing/2);
|
| @@ -171,10 +180,10 @@ protected:
|
| titlePaint.setFakeBoldText(true);
|
| titlePaint.setTextAlign(SkPaint::kCenter_Align);
|
| canvas->drawText("Porter Duff", sizeof("Porter Duff") - 1,
|
| - kLabelSpacing + 3 * kShapeTypeSpacing,
|
| + kLabelSpacing + 4 * kShapeTypeSpacing,
|
| kTitleSpacing / 2 + titlePaint.getTextSize() / 3, titlePaint);
|
| canvas->drawText("Advanced", sizeof("Advanced") - 1,
|
| - kXfermodeTypeSpacing + kLabelSpacing + 3 * kShapeTypeSpacing,
|
| + kXfermodeTypeSpacing + kLabelSpacing + 4 * kShapeTypeSpacing,
|
| kTitleSpacing / 2 + titlePaint.getTextSize() / 3, titlePaint);
|
|
|
| draw_pass(canvas, kShape_Pass);
|
| @@ -186,7 +195,7 @@ protected:
|
| : "Arithmetic";
|
| fLabelPaint.setTextAlign(SkPaint::kRight_Align);
|
| canvas->drawText(modeName, strlen(modeName), kLabelSpacing - kShapeSize / 4,
|
| - fLabelPaint.getTextSize() / 3, fLabelPaint);
|
| + fLabelPaint.getTextSize() / 4, fLabelPaint);
|
| }
|
|
|
| void setupShapePaint(SkCanvas* canvas, GrColor color, SkXfermode::Mode mode, SkPaint* paint) {
|
| @@ -212,7 +221,7 @@ protected:
|
| dimPaint.setARGB(0, 0, 0, 0);
|
| }
|
| canvas->drawRectCoords(-kShapeSpacing/2, -kShapeSpacing/2,
|
| - kShapeSpacing/2 + 2 * kShapeTypeSpacing,
|
| + kShapeSpacing/2 + 3 * kShapeTypeSpacing,
|
| kShapeSpacing/2, dimPaint);
|
| }
|
| }
|
| @@ -247,10 +256,14 @@ protected:
|
| case kOval_Shape:
|
| canvas->save();
|
| canvas->rotate(static_cast<SkScalar>((511 * mode + 257) % 360));
|
| - canvas->drawPath(fPath, shapePaint);
|
| + canvas->drawPath(fOval, shapePaint);
|
| canvas->restore();
|
| break;
|
|
|
| + case kConcave_Shape:
|
| + canvas->drawPath(fConcave, shapePaint);
|
| + break;
|
| +
|
| default:
|
| SkFAIL("Invalid shape.");
|
| }
|
| @@ -258,7 +271,8 @@ protected:
|
|
|
| private:
|
| SkPaint fLabelPaint;
|
| - SkPath fPath;
|
| + SkPath fOval;
|
| + SkPath fConcave;
|
|
|
| typedef GM INHERITED;
|
| };
|
|
|