Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(168)

Side by Side Diff: third_party/WebKit/Source/platform/fonts/Font.cpp

Issue 2845883002: [LayoutNG] Add NG-specific DrawText support to GraphicsContext (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2003, 2006, 2010, 2011 Apple Inc. All rights reserved. 5 * Copyright (C) 2003, 2006, 2010, 2011 Apple Inc. All rights reserved.
6 * Copyright (c) 2007, 2008, 2010 Google Inc. All rights reserved. 6 * Copyright (c) 2007, 2008, 2010 Google Inc. All rights reserved.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 return; 239 return;
240 240
241 ShapeResultBloberizer bloberizer(*this, device_scale_factor); 241 ShapeResultBloberizer bloberizer(*this, device_scale_factor);
242 CachingWordShaper word_shaper(*this); 242 CachingWordShaper word_shaper(*this);
243 ShapeResultBuffer buffer; 243 ShapeResultBuffer buffer;
244 word_shaper.FillResultBuffer(run_info, &buffer); 244 word_shaper.FillResultBuffer(run_info, &buffer);
245 bloberizer.FillTextEmphasisGlyphs(run_info, emphasis_glyph_data, buffer); 245 bloberizer.FillTextEmphasisGlyphs(run_info, emphasis_glyph_data, buffer);
246 DrawBlobs(canvas, flags, bloberizer.Blobs(), point); 246 DrawBlobs(canvas, flags, bloberizer.Blobs(), point);
247 } 247 }
248 248
249 void Font::DrawEmphasisMarks(PaintCanvas* canvas,
250 const TextFragmentPaintInfo& text_info,
251 const AtomicString& mark,
252 const FloatPoint& point,
253 float device_scale_factor,
254 const PaintFlags& flags) const {
255 if (ShouldSkipDrawing())
256 return;
257
258 FontCachePurgePreventer purge_preventer;
259 const auto emphasis_glyph_data = GetEmphasisMarkGlyphData(mark);
260 if (!emphasis_glyph_data.font_data)
261 return;
262
263 ShapeResultBloberizer bloberizer(*this, device_scale_factor);
264 bloberizer.FillTextEmphasisGlyphs(
265 text_info.text, text_info.direction, text_info.from, text_info.to,
266 emphasis_glyph_data, text_info.shape_result);
267 DrawBlobs(canvas, flags, bloberizer.Blobs(), point);
268 }
269
249 float Font::Width(const TextRun& run, 270 float Font::Width(const TextRun& run,
250 HashSet<const SimpleFontData*>* fallback_fonts, 271 HashSet<const SimpleFontData*>* fallback_fonts,
251 FloatRect* glyph_bounds) const { 272 FloatRect* glyph_bounds) const {
252 FontCachePurgePreventer purge_preventer; 273 FontCachePurgePreventer purge_preventer;
253 CachingWordShaper shaper(*this); 274 CachingWordShaper shaper(*this);
254 return shaper.Width(run, fallback_fonts, glyph_bounds); 275 return shaper.Width(run, fallback_fonts, glyph_bounds);
255 } 276 }
256 277
257 static int GetInterceptsFromBlobs( 278 static int GetInterceptsFromBlobs(
258 const ShapeResultBloberizer::BlobBuffer& blobs, 279 const ShapeResultBloberizer::BlobBuffer& blobs,
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 469
449 bool Font::LoadingCustomFonts() const { 470 bool Font::LoadingCustomFonts() const {
450 return font_fallback_list_ && font_fallback_list_->LoadingCustomFonts(); 471 return font_fallback_list_ && font_fallback_list_->LoadingCustomFonts();
451 } 472 }
452 473
453 bool Font::IsFallbackValid() const { 474 bool Font::IsFallbackValid() const {
454 return !font_fallback_list_ || font_fallback_list_->IsValid(); 475 return !font_fallback_list_ || font_fallback_list_->IsValid();
455 } 476 }
456 477
457 } // namespace blink 478 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698