diff options
-rw-r--r-- | gm/gm_files.mk | 3 | ||||
-rw-r--r-- | gm/points.cpp | 67 | ||||
-rw-r--r-- | samplecode/SamplePoints.cpp | 76 |
3 files changed, 88 insertions, 58 deletions
diff --git a/gm/gm_files.mk b/gm/gm_files.mk index f5c9deb40b..2f7769e3f7 100644 --- a/gm/gm_files.mk +++ b/gm/gm_files.mk @@ -3,7 +3,8 @@ SOURCE := \ blurs.cpp \ filltypes.cpp \ gradients.cpp \ - poly2poly.cpp \ + points.cpp \ + poly2poly.cpp \ shapes.cpp \ tilemodes.cpp \ xfermodes.cpp \ diff --git a/gm/points.cpp b/gm/points.cpp new file mode 100644 index 0000000000..48d8fec2b4 --- /dev/null +++ b/gm/points.cpp @@ -0,0 +1,67 @@ +#include "gm.h" +#include "SkRandom.h" + +namespace skiagm { + +class PointsGM : public GM { +public: + PointsGM() {} + +protected: + virtual SkString onShortName() { + return SkString("points"); + } + + virtual SkISize onISize() { + return make_isize(640, 490); + } + + void drawBG(SkCanvas* canvas) { + canvas->drawColor(SK_ColorWHITE); + } + + 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); + } + + virtual void onDraw(SkCanvas* canvas) { + this->drawBG(canvas); + + canvas->translate(SK_Scalar1, SK_Scalar1); + + SkRandom rand; + SkPaint p0, p1, p2, p3; + const size_t n = 99; + + p0.setColor(SK_ColorRED); + p1.setColor(SK_ColorGREEN); + p2.setColor(SK_ColorBLUE); + p3.setColor(SK_ColorWHITE); + + p0.setStrokeWidth(SkIntToScalar(4)); + p2.setStrokeCap(SkPaint::kRound_Cap); + p2.setStrokeWidth(SkIntToScalar(6)); + + SkPoint* pts = new SkPoint[n]; + fill_pts(pts, n, &rand); + + canvas->drawPoints(SkCanvas::kPolygon_PointMode, n, pts, p0); + canvas->drawPoints(SkCanvas::kLines_PointMode, n, pts, p1); + canvas->drawPoints(SkCanvas::kPoints_PointMode, n, pts, p2); + canvas->drawPoints(SkCanvas::kPoints_PointMode, n, pts, p3); + + delete[] pts; + } + +private: + typedef GM INHERITED; +}; + +////////////////////////////////////////////////////////////////////////////// + +static GM* MyFactory(void*) { return new PointsGM; } +static GMRegistry reg(MyFactory); + +} + diff --git a/samplecode/SamplePoints.cpp b/samplecode/SamplePoints.cpp index db2e6b710e..416dc8d1e3 100644 --- a/samplecode/SamplePoints.cpp +++ b/samplecode/SamplePoints.cpp @@ -20,77 +20,43 @@ #include "SkStream.h" #include "SkXMLParser.h" -static SkRandom gRand; - -static const struct { - const char* fName; - uint32_t fFlags; - bool fFlushCache; -} gHints[] = { - { "Linear", SkPaint::kLinearText_Flag, false }, - { "Normal", 0, true }, - { "Subpixel", SkPaint::kSubpixelText_Flag, true } -}; - -#ifdef SK_DEBUG - #define REPEAT_COUNT 1 -#else - #define REPEAT_COUNT 5000 -#endif - class PointsView : public SkView { - bool fAA; public: - PointsView() : fAA(false) {} - + PointsView() {} + protected: // overrides from SkEventSink - virtual bool onQuery(SkEvent* evt) - { - if (SampleCode::TitleQ(*evt)) - { + virtual bool onQuery(SkEvent* evt) { + if (SampleCode::TitleQ(*evt)) { SampleCode::TitleR(evt, "Points"); return true; } return this->INHERITED::onQuery(evt); } - void drawBG(SkCanvas* canvas) - { -// canvas->drawColor(0xFFDDDDDD); + void drawBG(SkCanvas* canvas) { canvas->drawColor(SK_ColorWHITE); - // canvas->drawColor(SK_ColorBLACK); } - - static void fill_pts(SkPoint pts[], size_t n, SkRandom* rand) - { + + 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); } - - virtual void onDraw(SkCanvas* canvas) - { + + virtual void onDraw(SkCanvas* canvas) { this->drawBG(canvas); - + canvas->translate(SK_Scalar1, SK_Scalar1); - + SkRandom rand; SkPaint p0, p1, p2, p3; const size_t n = 99; - const int TIMES = 1; - + p0.setColor(SK_ColorRED); p1.setColor(SK_ColorGREEN); p2.setColor(SK_ColorBLUE); p3.setColor(SK_ColorWHITE); - - // fAA = !fAA; - fAA = false; - p0.setAntiAlias(fAA); - p1.setAntiAlias(fAA); - p2.setAntiAlias(fAA); - p3.setAntiAlias(fAA); - + p0.setStrokeWidth(SkIntToScalar(4)); p2.setStrokeCap(SkPaint::kRound_Cap); p2.setStrokeWidth(SkIntToScalar(6)); @@ -98,18 +64,14 @@ protected: SkPoint* pts = new SkPoint[n]; fill_pts(pts, n, &rand); -// SkMSec now = SkTime::GetMSecs(); - for (int times = 0; times < TIMES; times++) - { - canvas->drawPoints(SkCanvas::kPolygon_PointMode, n, pts, p0); - canvas->drawPoints(SkCanvas::kLines_PointMode, n, pts, p1); - canvas->drawPoints(SkCanvas::kPoints_PointMode, n, pts, p2); - canvas->drawPoints(SkCanvas::kPoints_PointMode, n, pts, p3); - } - // printf("----- msecs %d\n", SkTime::GetMSecs() - now); + canvas->drawPoints(SkCanvas::kPolygon_PointMode, n, pts, p0); + canvas->drawPoints(SkCanvas::kLines_PointMode, n, pts, p1); + canvas->drawPoints(SkCanvas::kPoints_PointMode, n, pts, p2); + canvas->drawPoints(SkCanvas::kPoints_PointMode, n, pts, p3); + delete[] pts; } - + private: typedef SkView INHERITED; |