handle cap==round for drawPoints



git-svn-id: http://skia.googlecode.com/svn/trunk@266 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SamplePoints.cpp b/samplecode/SamplePoints.cpp
index 7dc98f3..57e45c9 100644
--- a/samplecode/SamplePoints.cpp
+++ b/samplecode/SamplePoints.cpp
@@ -85,13 +85,14 @@
         p3.setColor(SK_ColorWHITE);
         
      //   fAA = !fAA;
-        
+        fAA = true;
         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));
 
         SkPoint* pts = new SkPoint[n];
diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp
index 352e4ed..2b7c55f 100644
--- a/src/core/SkDraw.cpp
+++ b/src/core/SkDraw.cpp
@@ -443,6 +443,7 @@
     }
 }
 
+// If this guy returns true, then chooseProc() must return a valid proc
 bool PtProcRec::init(SkCanvas::PointMode mode, const SkPaint& paint,
                      const SkMatrix* matrix, const SkRegion* clip) {
     if (paint.getPathEffect()) {
@@ -456,7 +457,8 @@
         fRadius = SK_Fixed1 >> 1;
         return true;
     }
-    if (matrix->rectStaysRect() && SkCanvas::kPoints_PointMode == mode) {
+    if (paint.getStrokeCap() != SkPaint::kRound_Cap &&
+            matrix->rectStaysRect() && SkCanvas::kPoints_PointMode == mode) {
         SkScalar sx = matrix->get(SkMatrix::kMScaleX);
         SkScalar sy = matrix->get(SkMatrix::kMScaleY);
         if (SkScalarNearlyZero(sx - sy)) {
@@ -475,7 +477,7 @@
 }
 
 PtProcRec::Proc PtProcRec::chooseProc(SkBlitter* blitter) {
-    Proc proc;
+    Proc proc = NULL;
     
     // for our arrays
     SkASSERT(0 == SkCanvas::kPoints_PointMode);
@@ -506,7 +508,7 @@
                 proc = gBWProcs[fMode];
             }
         }
-    } else {
+    } else if (fPaint->getStrokeCap() != SkPaint::kRound_Cap) {
         SkASSERT(SkCanvas::kPoints_PointMode == fMode);
         if (fPaint->isAntiAlias()) {
             proc = aa_square_proc;