Pass SkColor4f to DrawPlatformFocusRing()
Adjust callers to reduce impedance mismatch. Change the DarkModeColor()
helper in graphics_context.cc to use SkColor4f.
Change-Id: Ia7c40ec5ee9f9a91ed3cf9bf7a4f826586a3df5a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5317751
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Stephen Chenney <schenney@chromium.org>
Auto-Submit: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/main@{#1264102}
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
index 2eb7cc8..13df7bd 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
@@ -780,7 +780,8 @@
color_scheme = style->UsedColorScheme();
}
- SkColor color = LayoutTheme::GetTheme().FocusRingColor(color_scheme).Rgb();
+ const SkColor4f color =
+ LayoutTheme::GetTheme().FocusRingColor(color_scheme).toSkColor4f();
const int kFocusRingWidth = 5;
DrawPlatformFocusRing(path.GetSkPath(), GetPaintCanvas(), color,
/*width=*/kFocusRingWidth,
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.cc b/third_party/blink/renderer/platform/graphics/graphics_context.cc
index 5dd15e1c..fab4249 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_context.cc
+++ b/third_party/blink/renderer/platform/graphics/graphics_context.cc
@@ -86,14 +86,13 @@
return {gfx::Point(pt.x(), y), gfx::Point(pt.x() + width, y)};
}
-Color DarkModeColor(GraphicsContext& context,
- const Color& color,
- const AutoDarkMode& auto_dark_mode) {
+SkColor4f DarkModeColor(GraphicsContext& context,
+ const SkColor4f& color,
+ const AutoDarkMode& auto_dark_mode) {
if (auto_dark_mode.enabled) {
- return Color::FromSkColor4f(
- context.GetDarkModeFilter()->InvertColorIfNeeded(
- color.toSkColor4f(), auto_dark_mode.role,
- SkColor4f::FromColor(auto_dark_mode.contrast_color)));
+ return context.GetDarkModeFilter()->InvertColorIfNeeded(
+ color, auto_dark_mode.role,
+ SkColor4f::FromColor(auto_dark_mode.contrast_color));
}
return color;
}
@@ -350,9 +349,9 @@
float width,
float corner_radius,
const AutoDarkMode& auto_dark_mode) {
- DrawPlatformFocusRing(path, canvas_,
- DarkModeColor(*this, color, auto_dark_mode).Rgb(),
- width, corner_radius);
+ DrawPlatformFocusRing(
+ path, canvas_, DarkModeColor(*this, color.toSkColor4f(), auto_dark_mode),
+ width, corner_radius);
}
void GraphicsContext::DrawFocusRingRect(const SkRRect& rrect,
@@ -360,7 +359,8 @@
float width,
const AutoDarkMode& auto_dark_mode) {
DrawPlatformFocusRing(
- rrect, canvas_, DarkModeColor(*this, color, auto_dark_mode).Rgb(), width);
+ rrect, canvas_, DarkModeColor(*this, color.toSkColor4f(), auto_dark_mode),
+ width);
}
static void EnforceDotsAtEndpoints(GraphicsContext& context,
diff --git a/third_party/blink/renderer/platform/graphics/skia/skia_utils.cc b/third_party/blink/renderer/platform/graphics/skia/skia_utils.cc
index 436b5ac..5d744e1 100644
--- a/third_party/blink/renderer/platform/graphics/skia/skia_utils.cc
+++ b/third_party/blink/renderer/platform/graphics/skia/skia_utils.cc
@@ -390,7 +390,7 @@
return skcms_ApproximatelyEqualProfiles(&src_profile, &dst_profile);
}
-static cc::PaintFlags PaintFlagsForFocusRing(SkColor color, float width) {
+static cc::PaintFlags PaintFlagsForFocusRing(SkColor4f color, float width) {
cc::PaintFlags flags;
flags.setAntiAlias(true);
flags.setStyle(cc::PaintFlags::kStroke_Style);
@@ -401,14 +401,14 @@
void DrawPlatformFocusRing(const SkRRect& rrect,
cc::PaintCanvas* canvas,
- SkColor color,
+ SkColor4f color,
float width) {
canvas->drawRRect(rrect, PaintFlagsForFocusRing(color, width));
}
void DrawPlatformFocusRing(const SkPath& path,
cc::PaintCanvas* canvas,
- SkColor color,
+ SkColor4f color,
float width,
float corner_radius) {
cc::PaintFlags path_flags = PaintFlagsForFocusRing(color, width);
diff --git a/third_party/blink/renderer/platform/graphics/skia/skia_utils.h b/third_party/blink/renderer/platform/graphics/skia/skia_utils.h
index d9d2db0..746489a 100644
--- a/third_party/blink/renderer/platform/graphics/skia/skia_utils.h
+++ b/third_party/blink/renderer/platform/graphics/skia/skia_utils.h
@@ -147,11 +147,11 @@
void PLATFORM_EXPORT DrawPlatformFocusRing(const SkRRect&,
cc::PaintCanvas*,
- SkColor,
+ SkColor4f,
float width);
void PLATFORM_EXPORT DrawPlatformFocusRing(const SkPath&,
cc::PaintCanvas*,
- SkColor,
+ SkColor4f,
float width,
float corner_radius);