Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(222)

Unified Diff: ui/gfx/paint_vector_icon.cc

Issue 1270783005: V1 of material design find in page bar (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: mvp Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/gfx/paint_vector_icon.cc
diff --git a/ui/gfx/paint_vector_icon.cc b/ui/gfx/paint_vector_icon.cc
index 42608450bb36c2b18b7431ddc584b988f1406388..0338e11d90f04dc04173dbd4503e4c351a030a38 100644
--- a/ui/gfx/paint_vector_icon.cc
+++ b/ui/gfx/paint_vector_icon.cc
@@ -77,8 +77,11 @@ void PaintPath(Canvas* canvas,
paints.push_back(SkPaint());
paints.back().setColor(color);
+ SkRect clip_rect = SkRect::MakeEmpty();
+
for (size_t i = 0; path_elements[i].type != END; i++) {
SkPath& path = paths.back();
+ SkPaint& paint = paints.back();
switch (path_elements[i].type) {
case NEW_PATH: {
paths.push_back(SkPath());
@@ -92,7 +95,14 @@ void PaintPath(Canvas* canvas,
int r = SkScalarFloorToInt(path_elements[++i].arg);
int g = SkScalarFloorToInt(path_elements[++i].arg);
int b = SkScalarFloorToInt(path_elements[++i].arg);
- paints.back().setColor(SkColorSetARGB(a, r, g, b));
+ paint.setColor(SkColorSetARGB(a, r, g, b));
+ break;
+ }
+
+ case STROKE: {
+ paint.setStyle(SkPaint::kStroke_Style);
+ SkScalar width = path_elements[++i].arg;
+ paint.setStrokeWidth(width);
break;
}
@@ -193,6 +203,15 @@ void PaintPath(Canvas* canvas,
break;
}
+ case CLIP: {
+ SkScalar x = path_elements[++i].arg;
+ SkScalar y = path_elements[++i].arg;
+ SkScalar w = path_elements[++i].arg;
+ SkScalar h = path_elements[++i].arg;
+ clip_rect = SkRect::MakeXYWH(x, y, w, h);
+ break;
+ }
+
case END:
NOTREACHED();
break;
@@ -204,10 +223,13 @@ void PaintPath(Canvas* canvas,
canvas->sk_canvas()->scale(scale, scale);
}
+ if (!clip_rect.isEmpty())
+ canvas->sk_canvas()->clipRect(clip_rect);
+
DCHECK_EQ(paints.size(), paths.size());
for (size_t i = 0; i < paths.size(); ++i) {
- paints[i].setStyle(SkPaint::kFill_Style);
paints[i].setAntiAlias(true);
+ paints[i].setStrokeCap(SkPaint::kRound_Cap);
paths[i].setFillType(SkPath::kEvenOdd_FillType);
canvas->DrawPath(paths[i], paints[i]);
}
@@ -304,7 +326,10 @@ void PaintVectorIcon(Canvas* canvas,
size_t dip_size,
SkColor color) {
DCHECK(VectorIconId::VECTOR_ICON_NONE != id);
- PaintPath(canvas, GetPathForVectorIcon(id), dip_size, color);
+ const PathElement* path = canvas->image_scale() == 1.f
+ ? GetPathForVectorIconAt1xScale(id)
+ : GetPathForVectorIcon(id);
+ PaintPath(canvas, path, dip_size, color);
}
ImageSkia CreateVectorIcon(VectorIconId id, size_t dip_size, SkColor color) {

Powered by Google App Engine
This is Rietveld 408576698