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/render_text.h" | 5 #include "ui/gfx/render_text.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <climits> | 8 #include <climits> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 | 149 |
150 SkPoint points[2]; | 150 SkPoint points[2]; |
151 points[0].iset(text_rect.x(), text_rect.y()); | 151 points[0].iset(text_rect.x(), text_rect.y()); |
152 points[1].iset(text_rect.right(), text_rect.y()); | 152 points[1].iset(text_rect.right(), text_rect.y()); |
153 | 153 |
154 return skia::AdoptRef( | 154 return skia::AdoptRef( |
155 SkGradientShader::CreateLinear(&points[0], &colors[0], &positions[0], | 155 SkGradientShader::CreateLinear(&points[0], &colors[0], &positions[0], |
156 colors.size(), SkShader::kClamp_TileMode)); | 156 colors.size(), SkShader::kClamp_TileMode)); |
157 } | 157 } |
158 | 158 |
| 159 // Converts a FontRenderParams::Hinting value to the corresponding |
| 160 // SkPaint::Hinting value. |
| 161 SkPaint::Hinting FontRenderParamsHintingToSkPaintHinting( |
| 162 FontRenderParams::Hinting params_hinting) { |
| 163 switch (params_hinting) { |
| 164 case FontRenderParams::HINTING_NONE: return SkPaint::kNo_Hinting; |
| 165 case FontRenderParams::HINTING_SLIGHT: return SkPaint::kSlight_Hinting; |
| 166 case FontRenderParams::HINTING_MEDIUM: return SkPaint::kNormal_Hinting; |
| 167 case FontRenderParams::HINTING_FULL: return SkPaint::kFull_Hinting; |
| 168 } |
| 169 return SkPaint::kNo_Hinting; |
| 170 } |
| 171 |
159 } // namespace | 172 } // namespace |
160 | 173 |
161 namespace internal { | 174 namespace internal { |
162 | 175 |
163 // Value of |underline_thickness_| that indicates that underline metrics have | 176 // Value of |underline_thickness_| that indicates that underline metrics have |
164 // not been set explicitly. | 177 // not been set explicitly. |
165 const SkScalar kUnderlineMetricsNotSet = -1.0f; | 178 const SkScalar kUnderlineMetricsNotSet = -1.0f; |
166 | 179 |
167 SkiaTextRenderer::SkiaTextRenderer(Canvas* canvas) | 180 SkiaTextRenderer::SkiaTextRenderer(Canvas* canvas) |
168 : canvas_(canvas), | 181 : canvas_(canvas), |
(...skipping 29 matching lines...) Expand all Loading... |
198 void SkiaTextRenderer::SetDrawLooper(SkDrawLooper* draw_looper) { | 211 void SkiaTextRenderer::SetDrawLooper(SkDrawLooper* draw_looper) { |
199 paint_.setLooper(draw_looper); | 212 paint_.setLooper(draw_looper); |
200 } | 213 } |
201 | 214 |
202 void SkiaTextRenderer::SetFontRenderParams(const FontRenderParams& params, | 215 void SkiaTextRenderer::SetFontRenderParams(const FontRenderParams& params, |
203 bool background_is_transparent) { | 216 bool background_is_transparent) { |
204 paint_.setAntiAlias(params.antialiasing); | 217 paint_.setAntiAlias(params.antialiasing); |
205 paint_.setLCDRenderText(!background_is_transparent && | 218 paint_.setLCDRenderText(!background_is_transparent && |
206 params.subpixel_rendering != FontRenderParams::SUBPIXEL_RENDERING_NONE); | 219 params.subpixel_rendering != FontRenderParams::SUBPIXEL_RENDERING_NONE); |
207 paint_.setSubpixelText(params.subpixel_positioning); | 220 paint_.setSubpixelText(params.subpixel_positioning); |
208 } | 221 paint_.setAutohinted(params.autohinter); |
209 | 222 paint_.setHinting(FontRenderParamsHintingToSkPaintHinting(params.hinting)); |
210 void SkiaTextRenderer::SetFontHinting(SkPaint::Hinting hinting) { | |
211 paint_.setHinting(hinting); | |
212 } | 223 } |
213 | 224 |
214 void SkiaTextRenderer::SetTypeface(SkTypeface* typeface) { | 225 void SkiaTextRenderer::SetTypeface(SkTypeface* typeface) { |
215 paint_.setTypeface(typeface); | 226 paint_.setTypeface(typeface); |
216 } | 227 } |
217 | 228 |
218 void SkiaTextRenderer::SetTextSize(SkScalar size) { | 229 void SkiaTextRenderer::SetTextSize(SkScalar size) { |
219 paint_.setTextSize(size); | 230 paint_.setTextSize(size); |
220 } | 231 } |
221 | 232 |
(...skipping 1131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1353 cursor_bounds_ += delta_offset; | 1364 cursor_bounds_ += delta_offset; |
1354 } | 1365 } |
1355 | 1366 |
1356 void RenderText::DrawSelection(Canvas* canvas) { | 1367 void RenderText::DrawSelection(Canvas* canvas) { |
1357 const std::vector<Rect> sel = GetSubstringBounds(selection()); | 1368 const std::vector<Rect> sel = GetSubstringBounds(selection()); |
1358 for (std::vector<Rect>::const_iterator i = sel.begin(); i < sel.end(); ++i) | 1369 for (std::vector<Rect>::const_iterator i = sel.begin(); i < sel.end(); ++i) |
1359 canvas->FillRect(*i, selection_background_focused_color_); | 1370 canvas->FillRect(*i, selection_background_focused_color_); |
1360 } | 1371 } |
1361 | 1372 |
1362 } // namespace gfx | 1373 } // namespace gfx |
OLD | NEW |