aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/xps
diff options
context:
space:
mode:
authorGravatar Herb Derby <herb@google.com>2018-05-09 16:36:11 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-06-05 20:11:39 +0000
commit4225b3220ef4bf50f0d9403f812ea94d50c4ee59 (patch)
treea03d6ff5708e6c41fdc4b1edb8f5200d08d7dc63 /src/xps
parentf105dc71e4200db5a57a1e28b8bca2b3689debdb (diff)
Have draw(Text|PosText|PosTextH) use a single entry on the device
Handle the positioning of drawText at the canvas layer. Simplify the code by removing similar implementations. Change-Id: I8b711783435072f560e29fca1dd934fa2e345ed2 Reviewed-on: https://skia-review.googlesource.com/127131 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
Diffstat (limited to 'src/xps')
-rw-r--r--src/xps/SkXPSDevice.cpp57
-rw-r--r--src/xps/SkXPSDevice.h2
2 files changed, 0 insertions, 59 deletions
diff --git a/src/xps/SkXPSDevice.cpp b/src/xps/SkXPSDevice.cpp
index 29ee8f3eca..ef5f48881d 100644
--- a/src/xps/SkXPSDevice.cpp
+++ b/src/xps/SkXPSDevice.cpp
@@ -2047,63 +2047,6 @@ private:
GlyphRun* const fXpsGlyphs;
};
-void SkXPSDevice::drawText(const void* text, size_t byteLen,
- SkScalar x, SkScalar y,
- const SkPaint& paint) {
- if (byteLen < 1) return;
-
- if (text_must_be_pathed(paint, this->ctm())) {
- SkPath path;
- paint.getTextPath(text, byteLen, x, y, &path);
- this->drawPath(path, paint, nullptr, true);
- //TODO: add automation "text"
- return;
- }
-
- TypefaceUse* typeface;
- HRV(CreateTypefaceUse(paint, &typeface));
-
- auto cache =
- SkStrikeCache::FindOrCreateStrikeExclusive(
- paint, &this->surfaceProps(),
- SkScalerContextFlags::kNone, nullptr);
-
- // Advance width and offsets for glyphs measured in hundredths of the font em size
- // (XPS Spec 5.1.3).
- FLOAT centemPerUnit = 100.0f / SkScalarToFLOAT(paint.getTextSize());
- GlyphRun xpsGlyphs;
- xpsGlyphs.setReserve(num_glyph_guess(paint.getTextEncoding(),
- static_cast<const char*>(text), byteLen));
-
- ProcessOneGlyph processOneGlyph(centemPerUnit, typeface->glyphsUsed, &xpsGlyphs);
-
- SkFindAndPlaceGlyph::ProcessText(
- paint.getTextEncoding(), static_cast<const char*>(text), byteLen,
- SkPoint{ x, y }, SkMatrix::I(), paint.getTextAlign(), cache.get(), processOneGlyph);
-
- if (xpsGlyphs.count() == 0) {
- return;
- }
-
- XPS_POINT origin = {
- xpsGlyphs[0].horizontalOffset / centemPerUnit,
- xpsGlyphs[0].verticalOffset / -centemPerUnit,
- };
- xpsGlyphs[0].horizontalOffset = 0.0f;
- xpsGlyphs[0].verticalOffset = 0.0f;
-
- HRV(AddGlyphs(this->fXpsFactory.get(),
- this->fCurrentXpsCanvas.get(),
- typeface,
- nullptr,
- xpsGlyphs.begin(), xpsGlyphs.count(),
- &origin,
- SkScalarToFLOAT(paint.getTextSize()),
- XPS_STYLE_SIMULATION_NONE,
- this->ctm(),
- paint));
-}
-
void SkXPSDevice::drawPosText(const void* text, size_t byteLen,
const SkScalar pos[], int scalarsPerPos,
const SkPoint& offset, const SkPaint& paint) {
diff --git a/src/xps/SkXPSDevice.h b/src/xps/SkXPSDevice.h
index a5ee07634c..81e881ea82 100644
--- a/src/xps/SkXPSDevice.h
+++ b/src/xps/SkXPSDevice.h
@@ -97,8 +97,6 @@ protected:
const SkRect* srcOrNull, const SkRect& dst,
const SkPaint& paint,
SkCanvas::SrcRectConstraint) override;
- void drawText(const void* text, size_t len,
- SkScalar x, SkScalar y, const SkPaint& paint) override;
void drawPosText(const void* text, size_t len,
const SkScalar pos[], int scalarsPerPos,
const SkPoint& offset, const SkPaint& paint) override;