aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pdf
diff options
context:
space:
mode:
authorGravatar halcanary <halcanary@google.com>2016-08-24 09:20:57 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-08-24 09:20:57 -0700
commitea17dfe40b04fa476008af67984b7a41dc5243f7 (patch)
treeede7e86f2229f7a30a2a33f03c237f4e8d17a41a /src/pdf
parentbea9748449e9d0ab6e2e17fe206931afd81613e5 (diff)
SkPDF: vertical writing: draw nothing
Diffstat (limited to 'src/pdf')
-rw-r--r--src/pdf/SkPDFDevice.cpp13
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);