コード例 #1
0
ファイル: FontTableCache.cpp プロジェクト: luigiScarso/mflua
const void *FontTableCache::find(LETag tableTag, le_uint32 *tableSize) const
{
	int lo = 0, hi = fTableCacheCurr;
	while (lo < hi) {
		int i = (lo + hi) >> 1;
		const FontTableCacheEntry *e = fTableCache + i;
		if (e->tag < tableTag)
			lo = i + 1;
		else if (e->tag > tableTag)
			hi = i;
		else {
            if (tableSize != NULL)
                *tableSize = e->size;
            return e->table;
		}
	}

    le_uint32  length;
    const void *table = readFontTable(tableTag, length);

    ((FontTableCache *) this)->add(tableTag, table, length);
    if (tableSize != NULL)
        *tableSize = length;

    return table;
}
コード例 #2
0
const void *FontTableCache::find(LETag tableTag) const
{
    for (int i = 0; i < fTableCacheCurr; i += 1) {
        if (fTableCache[i].tag == tableTag) {
            return fTableCache[i].table;
        }
    }

    const void *table = readFontTable(tableTag);

    ((FontTableCache *) this)->add(tableTag, table);

    return table;
}
コード例 #3
0
const void *FontTableCache::find(LETag tableTag, size_t &length) const
{
    for (int i = 0; i < fTableCacheCurr; i += 1) {
        if (fTableCache[i].tag == tableTag) {
          length = fTableCache[i].length;
          return fTableCache[i].table;
        }
    }

    const void *table = readFontTable(tableTag, length);

    ((FontTableCache *) this)->add(tableTag, table, length);

    return table;
}