aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-02-17 15:06:52 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-02-17 15:06:52 +0000
commita965a15abd57ea1bbbbfcc8dc1574d7d7a2e424d (patch)
tree1124325ba9072d35cd3b560cbe0a1c23d63d83c7
parent67981c5e4b4bec341fb40a59b111d75da1d6ab66 (diff)
add test for points
git-svn-id: http://skia.googlecode.com/svn/trunk@806 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r--gm/gm_files.mk3
-rw-r--r--gm/points.cpp67
-rw-r--r--samplecode/SamplePoints.cpp76
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;