summaryrefslogtreecommitdiff
path: root/src/cairo-truetype-subset.c
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2008-06-29 19:36:10 +0930
committerAdrian Johnson <ajohnson@redneon.com>2008-06-29 19:36:10 +0930
commit2012d4f7364f9efa0789996e7906f269d5d59d41 (patch)
tree4f611e79e53d2518afdb4018623cc769eb5d96f9 /src/cairo-truetype-subset.c
parent154324f121e7aad8af474ac26e0e320cddd37579 (diff)
downloadcairo-2012d4f7364f9efa0789996e7906f269d5d59d41.tar.gz
Removed unused cairo_truetype_create_glyph_to_unicode_map()
Diffstat (limited to 'src/cairo-truetype-subset.c')
-rw-r--r--src/cairo-truetype-subset.c147
1 files changed, 0 insertions, 147 deletions
diff --git a/src/cairo-truetype-subset.c b/src/cairo-truetype-subset.c
index 5e4210eb4..53d72320c 100644
--- a/src/cairo-truetype-subset.c
+++ b/src/cairo-truetype-subset.c
@@ -1173,153 +1173,6 @@ _cairo_truetype_subset_fini (cairo_truetype_subset_t *subset)
}
static cairo_int_status_t
-_cairo_truetype_map_glyphs_to_unicode (cairo_scaled_font_subset_t *font_subset,
- unsigned long table_offset)
-{
- cairo_status_t status;
- const cairo_scaled_font_backend_t *backend;
- tt_segment_map_t *map;
- char buf[4];
- unsigned int num_segments, i, j;
- unsigned long size;
- uint16_t *start_code;
- uint16_t *end_code;
- uint16_t *delta;
- uint16_t *range_offset;
- uint16_t *glyph_array;
- uint16_t g_id, c;
-
- backend = font_subset->scaled_font->backend;
- size = 4;
- status = backend->load_truetype_table (font_subset->scaled_font,
- TT_TAG_cmap, table_offset,
- (unsigned char *) &buf,
- &size);
- if (status)
- return status;
-
- /* All table formats have the same first two words */
- map = (tt_segment_map_t *) buf;
- if (be16_to_cpu (map->format) != 4)
- return CAIRO_INT_STATUS_UNSUPPORTED;
-
- size = be16_to_cpu (map->length);
- map = malloc (size);
- if (map == NULL)
- return _cairo_error (CAIRO_STATUS_NO_MEMORY);
-
- status = backend->load_truetype_table (font_subset->scaled_font,
- TT_TAG_cmap, table_offset,
- (unsigned char *) map,
- &size);
- if (status)
- goto fail;
-
- num_segments = be16_to_cpu (map->segCountX2)/2;
- end_code = map->endCount;
- start_code = &(end_code[num_segments + 1]);
- delta = &(start_code[num_segments]);
- range_offset = &(delta[num_segments]);
- glyph_array = &(range_offset[num_segments]);
-
- i = 0;
- while (i < font_subset->num_glyphs) {
- g_id = (uint16_t) font_subset->glyphs[i];
-
- /* search for glyph in segments
- * with rangeOffset=0 */
- for (j = 0; j < num_segments; j++) {
- c = g_id - be16_to_cpu (delta[j]);
- if (range_offset[j] == 0 &&
- c >= be16_to_cpu (start_code[j]) &&
- c <= be16_to_cpu (end_code[j]))
- {
- font_subset->to_unicode[i] = c;
- goto next_glyph;
- }
- }
-
- /* search for glyph in segments with rangeOffset=1 */
- for (j = 0; j < num_segments; j++) {
- if (range_offset[j] != 0) {
- uint16_t *glyph_ids = &range_offset[j] + be16_to_cpu (range_offset[j])/2;
- int range_size = be16_to_cpu (end_code[j]) - be16_to_cpu (start_code[j]) + 1;
- uint16_t g_id_be = cpu_to_be16 (g_id);
- int k;
-
- for (k = 0; k < range_size; k++) {
- if (glyph_ids[k] == g_id_be) {
- font_subset->to_unicode[i] = be16_to_cpu (start_code[j]) + k;
- goto next_glyph;
- }
- }
- }
- }
-
- next_glyph:
- i++;
- }
- status = CAIRO_STATUS_SUCCESS;
-fail:
- free (map);
-
- return status;
-}
-
-cairo_int_status_t
-_cairo_truetype_create_glyph_to_unicode_map (cairo_scaled_font_subset_t *font_subset)
-{
- cairo_status_t status = CAIRO_INT_STATUS_UNSUPPORTED;
- const cairo_scaled_font_backend_t *backend;
- tt_cmap_t *cmap;
- char buf[4];
- int num_tables, i;
- unsigned long size;
-
- backend = font_subset->scaled_font->backend;
- if (!backend->load_truetype_table)
- return CAIRO_INT_STATUS_UNSUPPORTED;
-
- size = 4;
- status = backend->load_truetype_table (font_subset->scaled_font,
- TT_TAG_cmap, 0,
- (unsigned char *) &buf,
- &size);
- if (status)
- return status;
-
- cmap = (tt_cmap_t *) buf;
- num_tables = be16_to_cpu (cmap->num_tables);
- size = 4 + num_tables*sizeof(tt_cmap_index_t);
- cmap = malloc (size);
- if (cmap == NULL)
- return _cairo_error (CAIRO_STATUS_NO_MEMORY);
-
- status = backend->load_truetype_table (font_subset->scaled_font,
- TT_TAG_cmap, 0,
- (unsigned char *) cmap,
- &size);
- if (status)
- goto cleanup;
-
- /* Find a table with Unicode mapping */
- for (i = 0; i < num_tables; i++) {
- if (be16_to_cpu (cmap->index[i].platform) == 3 &&
- be16_to_cpu (cmap->index[i].encoding) == 1) {
- status = _cairo_truetype_map_glyphs_to_unicode (font_subset,
- be32_to_cpu (cmap->index[i].offset));
- if (status != CAIRO_INT_STATUS_UNSUPPORTED)
- goto cleanup;
- }
- }
-
-cleanup:
- free (cmap);
-
- return status;
-}
-
-static cairo_int_status_t
_cairo_truetype_reverse_cmap (cairo_scaled_font_t *scaled_font,
unsigned long table_offset,
unsigned long index,