1fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com/* 2fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com * Copyright 2013 Google Inc. 3fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com * 4fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com * Use of this source code is governed by a BSD-style license that can be 5fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com * found in the LICENSE file. 6fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com */ 7fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com 8fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com#ifndef SkTypefacePriv_DEFINED 9fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com#define SkTypefacePriv_DEFINED 10fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com 11fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com#include "SkTypeface.h" 12fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com 13fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com/** 14fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com * Return a ref'd typeface, which must later be unref'd 15fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com * 16fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com * If the parameter is non-null, it will be ref'd and returned, otherwise 17fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com * it will be the default typeface. 18fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com */ 19fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.comstatic inline SkTypeface* ref_or_default(SkTypeface* face) { 20fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com return face ? SkRef(face) : SkTypeface::RefDefault(); 21fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com} 22fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com 23fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com/** 24fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com * Always resolves to a non-null typeface, either the value passed to its 25fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com * constructor, or the default typeface if null was passed. 26fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com */ 27fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.comclass SkAutoResolveDefaultTypeface : public SkAutoTUnref<SkTypeface> { 28fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.compublic: 29fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com SkAutoResolveDefaultTypeface() : INHERITED(SkTypeface::RefDefault()) {} 30c49cabfe5cddc1691a00f713ae1b077d9409389fskia.committer@gmail.com 31fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com SkAutoResolveDefaultTypeface(SkTypeface* face) 32fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com : INHERITED(ref_or_default(face)) {} 33fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com 34fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.comprivate: 35fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com typedef SkAutoTUnref<SkTypeface> INHERITED; 36fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com}; 37fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com 38fed86bdb8b9f037439bbfa7cdbd53a581dbc5985reed@google.com#endif 39