1cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon/*
2cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon * Copyright 2017 Google Inc.
3cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon *
4cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon * Use of this source code is governed by a BSD-style license that can be
5cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon * found in the LICENSE file.
6cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon */
7cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon
8cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon#ifndef SkAtlasTextFont_DEFINED
9cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon#define SkAtlasTextFont_DEFINED
10cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon
11cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon#include "SkRefCnt.h"
12cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon#include "SkTypeface.h"
13cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon
14cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon/** Represents a font at a size. TODO: What else do we need here (skewX, scaleX, vertical, ...)? */
15cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomonclass SK_API SkAtlasTextFont : public SkRefCnt {
16cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomonpublic:
17cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon    static sk_sp<SkAtlasTextFont> Make(sk_sp<SkTypeface> typeface, SkScalar size) {
18cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon        return sk_sp<SkAtlasTextFont>(new SkAtlasTextFont(std::move(typeface), size));
19cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon    }
20cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon
21cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon    SkTypeface* typeface() const { return fTypeface.get(); }
22cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon
23cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon    sk_sp<SkTypeface> refTypeface() const { return fTypeface; }
24cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon
25cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon    SkScalar size() const { return fSize; }
26cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon
27cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomonprivate:
28cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon    SkAtlasTextFont(sk_sp<SkTypeface> typeface, SkScalar size)
29cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon            : fTypeface(std::move(typeface)), fSize(size) {}
30cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon
31cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon    sk_sp<SkTypeface> fTypeface;
32cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon    SkScalar fSize;
33cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon};
34cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon
35cbcb0a12ad0068b820c28178e8aa141166febd1fBrian Salomon#endif
36