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

Unified Diff: third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp

Issue 2845883002: [LayoutNG] Add NG-specific DrawText support to GraphicsContext (Closed)
Patch Set: Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp
diff --git a/third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp b/third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp
index 1c9b4b1a167d2ff6371797ca85b2b5c43db51086..06b2d05366ed8bc7e4b85d5f00a5ce52dd29008c 100644
--- a/third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp
+++ b/third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp
@@ -739,17 +739,32 @@ void GraphicsContext::DrawRect(const IntRect& rect) {
}
}
-void GraphicsContext::DrawText(const Font& font,
- const TextRunPaintInfo& run_info,
- const FloatPoint& point,
- const PaintFlags& flags) {
+template <typename TextPaintInfo>
+void GraphicsContext::DrawTextInternal(const Font& font,
+ const TextPaintInfo& text_info,
+ const FloatPoint& point,
+ const PaintFlags& flags) {
if (ContextDisabled())
return;
- if (font.DrawText(canvas_, run_info, point, device_scale_factor_, flags))
+ if (font.DrawText(canvas_, text_info, point, device_scale_factor_, flags))
paint_controller_.SetTextPainted();
}
+void GraphicsContext::DrawText(const Font& font,
+ const TextRunPaintInfo& text_info,
+ const FloatPoint& point,
+ const PaintFlags& flags) {
+ DrawTextInternal(font, text_info, point, flags);
+}
+
+void GraphicsContext::DrawText(const Font& font,
+ const TextFragmentPaintInfo& text_info,
+ const FloatPoint& point,
+ const PaintFlags& flags) {
+ DrawTextInternal(font, text_info, point, flags);
+}
+
template <typename DrawTextFunc>
void GraphicsContext::DrawTextPasses(const DrawTextFunc& draw_text) {
TextDrawingModeFlags mode_flags = TextDrawingMode();
@@ -769,32 +784,60 @@ void GraphicsContext::DrawTextPasses(const DrawTextFunc& draw_text) {
}
}
-void GraphicsContext::DrawText(const Font& font,
- const TextRunPaintInfo& run_info,
- const FloatPoint& point) {
+template <typename TextPaintInfo>
+void GraphicsContext::DrawTextInternal(const Font& font,
+ const TextPaintInfo& text_info,
+ const FloatPoint& point) {
if (ContextDisabled())
return;
- DrawTextPasses([&font, &run_info, &point, this](const PaintFlags& flags) {
- if (font.DrawText(canvas_, run_info, point, device_scale_factor_, flags))
+ DrawTextPasses([&font, &text_info, &point, this](const PaintFlags& flags) {
+ if (font.DrawText(canvas_, text_info, point, device_scale_factor_, flags))
paint_controller_.SetTextPainted();
});
}
-void GraphicsContext::DrawEmphasisMarks(const Font& font,
- const TextRunPaintInfo& run_info,
- const AtomicString& mark,
- const FloatPoint& point) {
+void GraphicsContext::DrawText(const Font& font,
+ const TextRunPaintInfo& text_info,
+ const FloatPoint& point) {
+ DrawTextInternal(font, text_info, point);
+}
+
+void GraphicsContext::DrawText(const Font& font,
+ const TextFragmentPaintInfo& text_info,
+ const FloatPoint& point) {
+ DrawTextInternal(font, text_info, point);
+}
+
+template <typename TextPaintInfo>
+void GraphicsContext::DrawEmphasisMarksInternal(const Font& font,
+ const TextPaintInfo& text_info,
+ const AtomicString& mark,
+ const FloatPoint& point) {
if (ContextDisabled())
return;
DrawTextPasses(
- [&font, &run_info, &mark, &point, this](const PaintFlags& flags) {
- font.DrawEmphasisMarks(canvas_, run_info, mark, point,
+ [&font, &text_info, &mark, &point, this](const PaintFlags& flags) {
+ font.DrawEmphasisMarks(canvas_, text_info, mark, point,
device_scale_factor_, flags);
});
}
+void GraphicsContext::DrawEmphasisMarks(const Font& font,
+ const TextRunPaintInfo& text_info,
+ const AtomicString& mark,
+ const FloatPoint& point) {
+ DrawEmphasisMarksInternal(font, text_info, mark, point);
+}
+
+void GraphicsContext::DrawEmphasisMarks(const Font& font,
+ const TextFragmentPaintInfo& text_info,
+ const AtomicString& mark,
+ const FloatPoint& point) {
+ DrawEmphasisMarksInternal(font, text_info, mark, point);
+}
+
void GraphicsContext::DrawBidiText(
const Font& font,
const TextRunPaintInfo& run_info,

Powered by Google App Engine
This is Rietveld 408576698