зеркало из https://github.com/mozilla/moz-skia.git
handle cap==round for drawPoints
git-svn-id: http://skia.googlecode.com/svn/trunk@266 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
Родитель
b602b8e533
Коммит
b4f404ac41
|
@ -85,13 +85,14 @@ protected:
|
|||
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];
|
||||
|
|
|
@ -443,6 +443,7 @@ static void aa_square_proc(const PtProcRec& rec, const SkPoint devPts[],
|
|||
}
|
||||
}
|
||||
|
||||
// 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 @@ bool PtProcRec::init(SkCanvas::PointMode mode, const SkPaint& paint,
|
|||
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 @@ bool PtProcRec::init(SkCanvas::PointMode mode, const SkPaint& paint,
|
|||
}
|
||||
|
||||
PtProcRec::Proc PtProcRec::chooseProc(SkBlitter* blitter) {
|
||||
Proc proc;
|
||||
Proc proc = NULL;
|
||||
|
||||
// for our arrays
|
||||
SkASSERT(0 == SkCanvas::kPoints_PointMode);
|
||||
|
@ -506,7 +508,7 @@ PtProcRec::Proc PtProcRec::chooseProc(SkBlitter* blitter) {
|
|||
proc = gBWProcs[fMode];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
} else if (fPaint->getStrokeCap() != SkPaint::kRound_Cap) {
|
||||
SkASSERT(SkCanvas::kPoints_PointMode == fMode);
|
||||
if (fPaint->isAntiAlias()) {
|
||||
proc = aa_square_proc;
|
||||
|
|
Загрузка…
Ссылка в новой задаче