OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/gfx/canvas.h" | 5 #include "ui/gfx/canvas.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <limits> | 8 #include <limits> |
9 | 9 |
10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 DrawLine(PointF(p1), PointF(p2), flags); | 314 DrawLine(PointF(p1), PointF(p2), flags); |
315 } | 315 } |
316 | 316 |
317 void Canvas::DrawLine(const PointF& p1, | 317 void Canvas::DrawLine(const PointF& p1, |
318 const PointF& p2, | 318 const PointF& p2, |
319 const cc::PaintFlags& flags) { | 319 const cc::PaintFlags& flags) { |
320 canvas_->drawLine(SkFloatToScalar(p1.x()), SkFloatToScalar(p1.y()), | 320 canvas_->drawLine(SkFloatToScalar(p1.x()), SkFloatToScalar(p1.y()), |
321 SkFloatToScalar(p2.x()), SkFloatToScalar(p2.y()), flags); | 321 SkFloatToScalar(p2.x()), SkFloatToScalar(p2.y()), flags); |
322 } | 322 } |
323 | 323 |
| 324 void Canvas::DrawSharpLine(PointF p1, PointF p2, SkColor color) { |
| 325 ScopedCanvas scoped(this); |
| 326 float dsf = UndoDeviceScaleFactor(); |
| 327 p1.Scale(dsf); |
| 328 p2.Scale(dsf); |
| 329 |
| 330 cc::PaintFlags flags; |
| 331 flags.setColor(color); |
| 332 flags.setStrokeWidth(SkFloatToScalar(std::floor(dsf))); |
| 333 |
| 334 DrawLine(p1, p2, flags); |
| 335 } |
| 336 |
324 void Canvas::DrawCircle(const Point& center_point, | 337 void Canvas::DrawCircle(const Point& center_point, |
325 int radius, | 338 int radius, |
326 const cc::PaintFlags& flags) { | 339 const cc::PaintFlags& flags) { |
327 DrawCircle(PointF(center_point), radius, flags); | 340 DrawCircle(PointF(center_point), radius, flags); |
328 } | 341 } |
329 | 342 |
330 void Canvas::DrawCircle(const PointF& center_point, | 343 void Canvas::DrawCircle(const PointF& center_point, |
331 float radius, | 344 float radius, |
332 const cc::PaintFlags& flags) { | 345 const cc::PaintFlags& flags) { |
333 canvas_->drawCircle(SkFloatToScalar(center_point.x()), | 346 canvas_->drawCircle(SkFloatToScalar(center_point.x()), |
(...skipping 19 matching lines...) Expand all Loading... |
353 } | 366 } |
354 | 367 |
355 void Canvas::DrawFocusRect(const Rect& rect) { | 368 void Canvas::DrawFocusRect(const Rect& rect) { |
356 DrawFocusRect(RectF(rect)); | 369 DrawFocusRect(RectF(rect)); |
357 } | 370 } |
358 | 371 |
359 void Canvas::DrawFocusRect(const RectF& rect) { | 372 void Canvas::DrawFocusRect(const RectF& rect) { |
360 DrawDashedRect(rect, SK_ColorGRAY); | 373 DrawDashedRect(rect, SK_ColorGRAY); |
361 } | 374 } |
362 | 375 |
363 void Canvas::DrawSolidFocusRect(const RectF& rect, | 376 void Canvas::DrawSolidFocusRect(RectF rect, SkColor color, float thickness) { |
364 SkColor color, | |
365 float thickness) { | |
366 cc::PaintFlags flags; | 377 cc::PaintFlags flags; |
367 flags.setColor(color); | 378 flags.setColor(color); |
368 flags.setStrokeWidth(SkFloatToScalar(thickness)); | 379 flags.setStrokeWidth(SkFloatToScalar(thickness)); |
369 flags.setStyle(cc::PaintFlags::kStroke_Style); | 380 flags.setStyle(cc::PaintFlags::kStroke_Style); |
370 gfx::RectF draw_rect = rect; | 381 rect.Inset(gfx::InsetsF(thickness / 2)); |
371 draw_rect.Inset(gfx::InsetsF(thickness / 2)); | 382 DrawRect(rect, flags); |
372 DrawRect(draw_rect, flags); | |
373 } | 383 } |
374 | 384 |
375 void Canvas::DrawImageInt(const ImageSkia& image, int x, int y) { | 385 void Canvas::DrawImageInt(const ImageSkia& image, int x, int y) { |
376 cc::PaintFlags flags; | 386 cc::PaintFlags flags; |
377 DrawImageInt(image, x, y, flags); | 387 DrawImageInt(image, x, y, flags); |
378 } | 388 } |
379 | 389 |
380 void Canvas::DrawImageInt(const ImageSkia& image, int x, int y, uint8_t a) { | 390 void Canvas::DrawImageInt(const ImageSkia& image, int x, int y, uint8_t a) { |
381 cc::PaintFlags flags; | 391 cc::PaintFlags flags; |
382 flags.setAlpha(a); | 392 flags.setAlpha(a); |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
600 flags.setFilterQuality(filter ? kLow_SkFilterQuality : kNone_SkFilterQuality); | 610 flags.setFilterQuality(filter ? kLow_SkFilterQuality : kNone_SkFilterQuality); |
601 flags.setShader(CreateImageRepShaderForScale( | 611 flags.setShader(CreateImageRepShaderForScale( |
602 image_rep, SkShader::kRepeat_TileMode, shader_scale, | 612 image_rep, SkShader::kRepeat_TileMode, shader_scale, |
603 remove_image_scale ? image_rep.scale() : 1.f)); | 613 remove_image_scale ? image_rep.scale() : 1.f)); |
604 | 614 |
605 // The rect will be filled by the bitmap. | 615 // The rect will be filled by the bitmap. |
606 canvas_->drawRect(dest_rect, flags); | 616 canvas_->drawRect(dest_rect, flags); |
607 } | 617 } |
608 | 618 |
609 } // namespace gfx | 619 } // namespace gfx |
OLD | NEW |