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