SkTypeface.cpp revision 03ca3d19c46817eaaadb7dfce1c60c002d809db9
1#include "SkTypeface.h" 2#include "SkFontHost.h" 3 4static const SkTypeface* resolve_null_typeface(const SkTypeface* face) 5{ 6 if (NULL == face) { 7 face = SkFontHost::FindTypeface(NULL, NULL, SkTypeface::kNormal); 8 SkASSERT(face); 9 } 10 return face; 11} 12 13uint32_t SkTypeface::UniqueID(const SkTypeface* face) 14{ 15 return resolve_null_typeface(face)->uniqueID(); 16} 17 18bool SkTypeface::Equal(const SkTypeface* facea, const SkTypeface* faceb) 19{ 20 return resolve_null_typeface(facea)->uniqueID() == 21 resolve_null_typeface(faceb)->uniqueID(); 22} 23 24/////////////////////////////////////////////////////////////////////////////// 25 26SkTypeface* SkTypeface::Create(const char name[], Style style) 27{ 28 SkTypeface* face = SkFontHost::FindTypeface(NULL, name, style); 29 face->ref(); 30 return face; 31} 32 33SkTypeface* SkTypeface::CreateFromTypeface(const SkTypeface* family, Style s) 34{ 35 family = resolve_null_typeface(family); 36 SkTypeface* face = SkFontHost::FindTypeface(family, NULL, s); 37 face->ref(); 38 return face; 39} 40 41SkTypeface* SkTypeface::CreateFromStream(SkStream* stream) 42{ 43 return SkFontHost::CreateTypeface(stream); 44} 45 46SkTypeface* SkTypeface::CreateFromFile(const char path[]) 47{ 48 return SkFontHost::CreateTypefaceFromFile(path); 49} 50 51/////////////////////////////////////////////////////////////////////////////// 52 53void SkTypeface::serialize(SkWStream* stream) const { 54 SkFontHost::Serialize(this, stream); 55} 56 57SkTypeface* SkTypeface::Deserialize(SkStream* stream) { 58 SkTypeface* face = SkFontHost::Deserialize(stream); 59 face->ref(); 60 return face; 61} 62 63 64