| Index: ui/gfx/render_text.cc
|
| diff --git a/ui/gfx/render_text.cc b/ui/gfx/render_text.cc
|
| index c12d80357bd5d5e0483f13b4b46146e455fe941c..6bf7aa3b3ac1df6c1ce3a553d95c208c14cf5a64 100644
|
| --- a/ui/gfx/render_text.cc
|
| +++ b/ui/gfx/render_text.cc
|
| @@ -17,6 +17,8 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/trace_event/trace_event.h"
|
| #include "build/build_config.h"
|
| +#include "skia/ext/cdl_canvas.h"
|
| +#include "skia/ext/cdl_shader.h"
|
| #include "third_party/icu/source/common/unicode/rbbi.h"
|
| #include "third_party/icu/source/common/unicode/utf16.h"
|
| #include "third_party/skia/include/core/SkDrawLooper.h"
|
| @@ -172,15 +174,19 @@ sk_sp<SkShader> CreateFadeShader(const FontList& font_list,
|
|
|
| // Converts a FontRenderParams::Hinting value to the corresponding
|
| // SkPaint::Hinting value.
|
| -SkPaint::Hinting FontRenderParamsHintingToSkPaintHinting(
|
| +CdlPaint::Hinting FontRenderParamsHintingToSkPaintHinting(
|
| FontRenderParams::Hinting params_hinting) {
|
| switch (params_hinting) {
|
| - case FontRenderParams::HINTING_NONE: return SkPaint::kNo_Hinting;
|
| - case FontRenderParams::HINTING_SLIGHT: return SkPaint::kSlight_Hinting;
|
| - case FontRenderParams::HINTING_MEDIUM: return SkPaint::kNormal_Hinting;
|
| - case FontRenderParams::HINTING_FULL: return SkPaint::kFull_Hinting;
|
| + case FontRenderParams::HINTING_NONE:
|
| + return CdlPaint::kNo_Hinting;
|
| + case FontRenderParams::HINTING_SLIGHT:
|
| + return CdlPaint::kSlight_Hinting;
|
| + case FontRenderParams::HINTING_MEDIUM:
|
| + return CdlPaint::kNormal_Hinting;
|
| + case FontRenderParams::HINTING_FULL:
|
| + return CdlPaint::kFull_Hinting;
|
| }
|
| - return SkPaint::kNo_Hinting;
|
| + return CdlPaint::kNo_Hinting;
|
| }
|
|
|
| // Make sure ranges don't break text graphemes. If a range in |break_list|
|
| @@ -216,12 +222,12 @@ SkiaTextRenderer::SkiaTextRenderer(Canvas* canvas)
|
| underline_thickness_(kUnderlineMetricsNotSet),
|
| underline_position_(0.0f) {
|
| DCHECK(canvas_skia_);
|
| - paint_.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
|
| - paint_.setStyle(SkPaint::kFill_Style);
|
| + paint_.setTextEncoding(CdlPaint::kGlyphID_TextEncoding);
|
| + paint_.setStyle(CdlPaint::kFill_Style);
|
| paint_.setAntiAlias(true);
|
| paint_.setSubpixelText(true);
|
| paint_.setLCDRenderText(true);
|
| - paint_.setHinting(SkPaint::kNormal_Hinting);
|
| + paint_.setHinting(CdlPaint::kNormal_Hinting);
|
| }
|
|
|
| SkiaTextRenderer::~SkiaTextRenderer() {
|
| @@ -249,7 +255,7 @@ void SkiaTextRenderer::SetForegroundColor(SkColor foreground) {
|
| }
|
|
|
| void SkiaTextRenderer::SetShader(sk_sp<SkShader> shader) {
|
| - paint_.setShader(std::move(shader));
|
| + paint_.setShader(WrapSkShader(std::move(shader)));
|
| }
|
|
|
| void SkiaTextRenderer::SetHaloEffect() {
|
| @@ -297,7 +303,7 @@ void SkiaTextRenderer::DrawUnderline(int x, int y, int width) {
|
| x_scalar, y + underline_position_, x_scalar + width,
|
| y + underline_position_ + underline_thickness_);
|
| if (underline_thickness_ == kUnderlineMetricsNotSet) {
|
| - const SkScalar text_size = paint_.getTextSize();
|
| + const SkScalar text_size = ToSkPaint(paint_).getTextSize();
|
| r.fTop = SkScalarMulAdd(text_size, kUnderlineOffset, y);
|
| r.fBottom = r.fTop + SkScalarMul(text_size, kLineThickness);
|
| }
|
| @@ -305,7 +311,7 @@ void SkiaTextRenderer::DrawUnderline(int x, int y, int width) {
|
| }
|
|
|
| void SkiaTextRenderer::DrawStrike(int x, int y, int width) const {
|
| - const SkScalar text_size = paint_.getTextSize();
|
| + const SkScalar text_size = ToSkPaint(paint_).getTextSize();
|
| const SkScalar height = SkScalarMul(text_size, kLineThickness);
|
| const SkScalar offset = SkScalarMulAdd(text_size, kStrikeThroughOffset, y);
|
| SkScalar x_scalar = SkIntToScalar(x);
|
| @@ -316,12 +322,8 @@ void SkiaTextRenderer::DrawStrike(int x, int y, int width) const {
|
|
|
| SkiaTextRenderer::DiagonalStrike::DiagonalStrike(Canvas* canvas,
|
| Point start,
|
| - const SkPaint& paint)
|
| - : canvas_(canvas),
|
| - start_(start),
|
| - paint_(paint),
|
| - total_length_(0) {
|
| -}
|
| + const CdlPaint& paint)
|
| + : canvas_(canvas), start_(start), paint_(paint), total_length_(0) {}
|
|
|
| SkiaTextRenderer::DiagonalStrike::~DiagonalStrike() {
|
| }
|
| @@ -410,7 +412,7 @@ Line::~Line() {}
|
|
|
| void ApplyRenderParams(const FontRenderParams& params,
|
| bool subpixel_rendering_suppressed,
|
| - SkPaint* paint) {
|
| + CdlPaint* paint) {
|
| paint->setAntiAlias(params.antialiasing);
|
| paint->setLCDRenderText(!subpixel_rendering_suppressed &&
|
| params.subpixel_rendering != FontRenderParams::SUBPIXEL_RENDERING_NONE);
|
|
|