summaryrefslogtreecommitdiffstats
path: root/include/minikin/FontCollection.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/minikin/FontCollection.h')
-rw-r--r--include/minikin/FontCollection.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/include/minikin/FontCollection.h b/include/minikin/FontCollection.h
index ffdb4d1..12700c6 100644
--- a/include/minikin/FontCollection.h
+++ b/include/minikin/FontCollection.h
@@ -21,6 +21,7 @@
#include <minikin/MinikinRefCounted.h>
#include <minikin/MinikinFont.h>
+#include <minikin/SparseBitSet.h>
#include <minikin/FontFamily.h>
namespace android {
@@ -51,12 +52,17 @@ private:
static const int kLogCharsPerPage = 8;
static const int kPageMask = (1 << kLogCharsPerPage) - 1;
+ struct FontInstance {
+ SparseBitSet* mCoverage;
+ FontFamily* mFamily;
+ };
+
struct Range {
size_t start;
size_t end;
};
- FontFamily* getFamilyForChar(uint32_t ch, FontLanguage lang, int variant) const;
+ const FontInstance* getInstanceForChar(uint32_t ch, FontLanguage lang, int variant) const;
// static for allocating unique id's
static uint32_t sNextId;
@@ -68,10 +74,10 @@ private:
uint32_t mMaxChar;
// This vector has ownership of the bitsets and typeface objects.
- std::vector<FontFamily*> mFamilies;
+ std::vector<FontInstance> mInstances;
// This vector contains pointers into mInstances
- std::vector<FontFamily*> mFamilyVec;
+ std::vector<const FontInstance*> mInstanceVec;
// These are offsets into mInstanceVec, one range per page
std::vector<Range> mRanges;