diff options
author | halcanary <halcanary@google.com> | 2016-08-24 09:20:57 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-08-24 09:20:57 -0700 |
commit | ea17dfe40b04fa476008af67984b7a41dc5243f7 (patch) | |
tree | ede7e86f2229f7a30a2a33f03c237f4e8d17a41a /src/pdf | |
parent | bea9748449e9d0ab6e2e17fe206931afd81613e5 (diff) |
SkPDF: vertical writing: draw nothing
BUG=skia:5665
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2274153002
Review-Url: https://codereview.chromium.org/2274153002
Diffstat (limited to 'src/pdf')
-rw-r--r-- | src/pdf/SkPDFDevice.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp index 9b9b16b04e..0dc8fef8dd 100644 --- a/src/pdf/SkPDFDevice.cpp +++ b/src/pdf/SkPDFDevice.cpp @@ -1079,6 +1079,14 @@ void SkPDFDevice::internalDrawText( // making text unreadable (e.g. same text twice when using CSS shadows). return; } + NOT_IMPLEMENTED(srcPaint.isVerticalText(), false); + if (srcPaint.isVerticalText()) { + // Don't pretend we support drawing vertical text. It is not + // clear to me how to switch to "vertical writing" mode in PDF. + // Currently neither Chromium or Android set this flag. + // https://bug.skia.org/5665 + return; + } SkPaint paint = calculate_text_paint(srcPaint); replace_srcmode_on_opaque_paint(&paint); if (!paint.getTypeface()) { @@ -1126,7 +1134,6 @@ void SkPDFDevice::internalDrawText( SkAutoGlyphCache glyphCache(paint, nullptr, nullptr); SkPaint::Align alignment = paint.getTextAlign(); - bool verticalText = paint.isVerticalText(); if (defaultPositioning && alignment != SkPaint::kLeft_Align) { SkScalar advance{0}; for (int i = 0; i < glyphCount; ++i) { @@ -1134,7 +1141,7 @@ void SkPDFDevice::internalDrawText( } SkScalar m = alignment == SkPaint::kCenter_Align ? 0.5f * advance : advance; - offset -= verticalText ? SkPoint{0, m} : SkPoint{m, 0}; + offset -= SkPoint{m, 0}; } ScopedContentEntry content(this, d, paint, true); if (!content.entry()) { @@ -1200,7 +1207,7 @@ void SkPDFDevice::internalDrawText( if (alignment != SkPaint::kLeft_Align) { SkScalar m = alignment == SkPaint::kCenter_Align ? 0.5f * advance : advance; - xy -= verticalText ? SkPoint{0, m} : SkPoint{m, 0}; + xy -= SkPoint{m, 0}; } (void)font->glyphsToPDFFontEncoding(glyphs, 1); glyphPositioner.writeGlyph(xy.x(), xy.y(), advance, *glyphs); |