| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "GrOvalRenderer.h" | 8 #include "GrOvalRenderer.h" |
| 9 | 9 |
| 10 #include "effects/GrCircleEdgeEffect.h" | 10 #include "effects/GrCircleEdgeEffect.h" |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 innerRadius = SkMaxScalar(0, radius - halfWidth); | 129 innerRadius = SkMaxScalar(0, radius - halfWidth); |
| 130 } | 130 } |
| 131 } | 131 } |
| 132 | 132 |
| 133 for (int i = 0; i < 4; ++i) { | 133 for (int i = 0; i < 4; ++i) { |
| 134 verts[i].fCenter = center; | 134 verts[i].fCenter = center; |
| 135 verts[i].fOuterRadius = outerRadius + 0.5f; | 135 verts[i].fOuterRadius = outerRadius + 0.5f; |
| 136 verts[i].fInnerRadius = innerRadius - 0.5f; | 136 verts[i].fInnerRadius = innerRadius - 0.5f; |
| 137 } | 137 } |
| 138 | 138 |
| 139 SkScalar L = -outerRadius; | |
| 140 SkScalar R = +outerRadius; | |
| 141 SkScalar T = -outerRadius; | |
| 142 SkScalar B = +outerRadius; | |
| 143 | |
| 144 // We've extended the outer radius out half a pixel to antialias. | 139 // We've extended the outer radius out half a pixel to antialias. |
| 145 // Expand the drawn rect here so all the pixels will be captured. | 140 // Expand the drawn rect here so all the pixels will be captured. |
| 146 L += center.fX - SK_ScalarHalf; | 141 SkRect bounds = SkRect::MakeLTRB( |
| 147 R += center.fX + SK_ScalarHalf; | 142 center.fX - outerRadius - SK_ScalarHalf, |
| 148 T += center.fY - SK_ScalarHalf; | 143 center.fY - outerRadius - SK_ScalarHalf, |
| 149 B += center.fY + SK_ScalarHalf; | 144 center.fX + outerRadius + SK_ScalarHalf, |
| 145 center.fY + outerRadius + SK_ScalarHalf |
| 146 ); |
| 150 | 147 |
| 151 verts[0].fPos = SkPoint::Make(L, T); | 148 verts[0].fPos = SkPoint::Make(bounds.fLeft, bounds.fTop); |
| 152 verts[1].fPos = SkPoint::Make(R, T); | 149 verts[1].fPos = SkPoint::Make(bounds.fRight, bounds.fTop); |
| 153 verts[2].fPos = SkPoint::Make(L, B); | 150 verts[2].fPos = SkPoint::Make(bounds.fLeft, bounds.fBottom); |
| 154 verts[3].fPos = SkPoint::Make(R, B); | 151 verts[3].fPos = SkPoint::Make(bounds.fRight, bounds.fBottom); |
| 155 | 152 |
| 156 target->drawNonIndexed(kTriangleStrip_GrPrimitiveType, 0, 4); | 153 target->drawNonIndexed(kTriangleStrip_GrPrimitiveType, 0, 4, &bounds); |
| 157 } | 154 } |
| 158 | 155 |
| 159 void GrOvalRenderer::drawEllipse(GrDrawTarget* target, | 156 void GrOvalRenderer::drawEllipse(GrDrawTarget* target, |
| 160 const GrPaint& paint, | 157 const GrPaint& paint, |
| 161 const GrRect& ellipse, | 158 const GrRect& ellipse, |
| 162 const SkStrokeRec& stroke) | 159 const SkStrokeRec& stroke) |
| 163 { | 160 { |
| 164 GrDrawState* drawState = target->drawState(); | 161 GrDrawState* drawState = target->drawState(); |
| 165 #ifdef SK_DEBUG | 162 #ifdef SK_DEBUG |
| 166 { | 163 { |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 T += center.fY - SK_ScalarHalf; | 265 T += center.fY - SK_ScalarHalf; |
| 269 B += center.fY + SK_ScalarHalf; | 266 B += center.fY + SK_ScalarHalf; |
| 270 | 267 |
| 271 verts[0].fPos = SkPoint::Make(L, T); | 268 verts[0].fPos = SkPoint::Make(L, T); |
| 272 verts[1].fPos = SkPoint::Make(R, T); | 269 verts[1].fPos = SkPoint::Make(R, T); |
| 273 verts[2].fPos = SkPoint::Make(L, B); | 270 verts[2].fPos = SkPoint::Make(L, B); |
| 274 verts[3].fPos = SkPoint::Make(R, B); | 271 verts[3].fPos = SkPoint::Make(R, B); |
| 275 | 272 |
| 276 target->drawNonIndexed(kTriangleStrip_GrPrimitiveType, 0, 4); | 273 target->drawNonIndexed(kTriangleStrip_GrPrimitiveType, 0, 4); |
| 277 } | 274 } |
| OLD | NEW |