aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ports/SkFontConfigTypeface.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ports/SkFontConfigTypeface.h')
-rw-r--r--src/ports/SkFontConfigTypeface.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/ports/SkFontConfigTypeface.h b/src/ports/SkFontConfigTypeface.h
new file mode 100644
index 0000000000..71f80b7318
--- /dev/null
+++ b/src/ports/SkFontConfigTypeface.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkFontConfigInterface.h"
+#include "SkFontHost_FreeType_common.h"
+#include "SkTypefaceCache.h"
+
+class SkFontDescriptor;
+class SkStream;
+
+class FontConfigTypeface : public SkTypeface_FreeType {
+ SkFontConfigInterface::FontIdentity fIdentity;
+ SkString fFamilyName;
+ SkStream* fLocalStream;
+
+public:
+ FontConfigTypeface(Style style,
+ const SkFontConfigInterface::FontIdentity& fi,
+ const SkString& familyName)
+ : INHERITED(style, SkTypefaceCache::NewFontID(), false)
+ , fIdentity(fi)
+ , fFamilyName(familyName)
+ , fLocalStream(NULL) {}
+
+ FontConfigTypeface(Style style, SkStream* localStream)
+ : INHERITED(style, SkTypefaceCache::NewFontID(), false) {
+ // we default to empty fFamilyName and fIdentity
+ fLocalStream = localStream;
+ SkSafeRef(localStream);
+ }
+
+ virtual ~FontConfigTypeface() {
+ SkSafeUnref(fLocalStream);
+ }
+
+ const SkFontConfigInterface::FontIdentity& getIdentity() const {
+ return fIdentity;
+ }
+
+ const char* getFamilyName() const { return fFamilyName.c_str(); }
+ SkStream* getLocalStream() const { return fLocalStream; }
+
+ bool isFamilyName(const char* name) const {
+ return fFamilyName.equals(name);
+ }
+
+protected:
+ friend class SkFontHost; // hack until we can make public versions
+
+ virtual int onGetTableTags(SkFontTableTag tags[]) const SK_OVERRIDE;
+ virtual size_t onGetTableData(SkFontTableTag, size_t offset,
+ size_t length, void* data) const SK_OVERRIDE;
+ virtual void onGetFontDescriptor(SkFontDescriptor*, bool*) const SK_OVERRIDE;
+ virtual SkStream* onOpenStream(int* ttcIndex) const SK_OVERRIDE;
+
+private:
+ typedef SkTypeface_FreeType INHERITED;
+};
+