comparison libass/ass_cache.h @ 23016:a1ced37f2ee5

Add generic hash map implementation. Reimplement both font cache and glyph cache on top of it.
author eugeni
date Fri, 20 Apr 2007 23:00:30 +0000
parents fb365c2b3d05
children f3b04984b0da
comparison
equal deleted inserted replaced
23015:de389ca83df7 23016:a1ced37f2ee5
56 void cache_add_glyph(glyph_hash_key_t* key, glyph_hash_val_t* val); 56 void cache_add_glyph(glyph_hash_key_t* key, glyph_hash_val_t* val);
57 glyph_hash_val_t* cache_find_glyph(glyph_hash_key_t* key); 57 glyph_hash_val_t* cache_find_glyph(glyph_hash_key_t* key);
58 void ass_glyph_cache_reset(void); 58 void ass_glyph_cache_reset(void);
59 void ass_glyph_cache_done(void); 59 void ass_glyph_cache_done(void);
60 60
61 typedef struct hashmap_s hashmap_t;
62 typedef void (*hashmap_item_dtor_t)(void* key, size_t key_size, void* value, size_t value_size);
63 typedef int (*hashmap_key_compare_t)(void* key1, void* key2, size_t key_size);
64 typedef unsigned (*hashmap_hash_t)(void* key, size_t key_size);
65
66 hashmap_t* hashmap_init(size_t key_size, size_t value_size, int nbuckets,
67 hashmap_item_dtor_t item_dtor, hashmap_key_compare_t key_compare,
68 hashmap_hash_t hash);
69 void hashmap_done(hashmap_t* map);
70 void hashmap_insert(hashmap_t* map, void* key, void* value);
71 void* hashmap_find(hashmap_t* map, void* key);
72
61 #endif 73 #endif
62 74