blob: 570643c792091d8d74f167884d8a2c10aa2a7e0f [file] [log] [blame]
Mike Reed331ccfd2018-10-25 12:36:06 -04001/*
2 * Copyright 2018 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "SkTextUtils.h"
Mike Reed34c9b6d2018-12-12 15:48:16 -05009#include "SkTextBlob.h"
Mike Reed331ccfd2018-10-25 12:36:06 -040010
11void SkTextUtils::DrawText(SkCanvas* canvas, const void* text, size_t size, SkScalar x, SkScalar y,
Mike Reed34c9b6d2018-12-12 15:48:16 -050012 const SkPaint& paint, Align align) {
Mike Reed331ccfd2018-10-25 12:36:06 -040013
Mike Reed34c9b6d2018-12-12 15:48:16 -050014 SkFont font = SkFont::LEGACY_ExtractFromPaint(paint);
Mike Reed331ccfd2018-10-25 12:36:06 -040015
Mike Reed3a42ec02018-10-30 12:53:21 -040016 if (align != kLeft_Align) {
Mike Reed34c9b6d2018-12-12 15:48:16 -050017 SkScalar width = font.measureText(text, size, paint.getTextEncoding());
Mike Reed3a42ec02018-10-30 12:53:21 -040018 if (align == kCenter_Align) {
Mike Reed34c9b6d2018-12-12 15:48:16 -050019 width *= 0.5f;
Mike Reed331ccfd2018-10-25 12:36:06 -040020 }
Mike Reed34c9b6d2018-12-12 15:48:16 -050021 x -= width;
Mike Reed331ccfd2018-10-25 12:36:06 -040022 }
23
Mike Reed34c9b6d2018-12-12 15:48:16 -050024 canvas->drawTextBlob(SkTextBlob::MakeFromText(text, size, font, paint.getTextEncoding()), x, y, paint);
Mike Reed331ccfd2018-10-25 12:36:06 -040025}
26