Index: ui/gfx/render_text.cc |
diff --git a/ui/gfx/render_text.cc b/ui/gfx/render_text.cc |
index f2f691ee9e283f214f5606dc22edb72a7ecd425d..ff0de8a91607e43c872a0a07e10ab2ef1e3dd533 100644 |
--- a/ui/gfx/render_text.cc |
+++ b/ui/gfx/render_text.cc |
@@ -22,6 +22,7 @@ |
#include "third_party/skia/include/core/SkDrawLooper.h" |
#include "third_party/skia/include/core/SkTypeface.h" |
#include "third_party/skia/include/effects/SkGradientShader.h" |
+#include "third_party/skia/include/effects/SkMorphologyImageFilter.h" |
#include "ui/gfx/canvas.h" |
#include "ui/gfx/geometry/insets.h" |
#include "ui/gfx/geometry/safe_integer_conversions.h" |
@@ -255,6 +256,10 @@ void SkiaTextRenderer::SetShader(sk_sp<SkShader> shader) { |
paint_.setShader(std::move(shader)); |
} |
+void SkiaTextRenderer::SetHaloEffect() { |
+ paint_.setImageFilter(SkDilateImageFilter::Make(1, 1, nullptr)); |
+} |
+ |
void SkiaTextRenderer::SetUnderlineMetrics(SkScalar thickness, |
SkScalar position) { |
underline_thickness_ = thickness; |
@@ -830,6 +835,8 @@ void RenderText::Draw(Canvas* canvas) { |
if (!text().empty()) { |
internal::SkiaTextRenderer renderer(canvas); |
+ if (halo_effect()) |
+ renderer.SetHaloEffect(); |
DrawVisualText(&renderer); |
} |