]> granicus.if.org Git - libass/commitdiff
Rename glyph cache to bitmap cache.
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>
Fri, 20 Apr 2007 23:02:20 +0000 (23:02 +0000)
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>
Fri, 20 Apr 2007 23:02:20 +0000 (23:02 +0000)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23035 b3059339-0415-0410-9bf9-f77b7e298cf2

libass/ass_cache.c
libass/ass_cache.h
libass/ass_render.c

index a11d2fea7ab7cc78a61fc5669716b2182e6a4b7e..f4756b54e170fee6d010b2cdcbde3b1972ac8b5e 100644 (file)
@@ -217,13 +217,13 @@ void ass_font_cache_done(void)
 }
 
 //---------------------------------
-// glyph cache
+// bitmap cache
 
-hashmap_t* glyph_cache;
+hashmap_t* bitmap_cache;
 
-static void glyph_hash_dtor(void* key, size_t key_size, void* value, size_t value_size)
+static void bitmap_hash_dtor(void* key, size_t key_size, void* value, size_t value_size)
 {
-       glyph_hash_val_t* v = value;
+       bitmap_hash_val_t* v = value;
        if (v->bm) ass_free_bitmap(v->bm);
        if (v->bm_o) ass_free_bitmap(v->bm_o);
        if (v->bm_s) ass_free_bitmap(v->bm_s);
@@ -231,37 +231,37 @@ static void glyph_hash_dtor(void* key, size_t key_size, void* value, size_t valu
        free(value);
 }
 
-void cache_add_glyph(glyph_hash_key_t* key, glyph_hash_val_t* val)
+void cache_add_bitmap(bitmap_hash_key_t* key, bitmap_hash_val_t* val)
 {
-       hashmap_insert(glyph_cache, key, val);
+       hashmap_insert(bitmap_cache, key, val);
 }
 
 /**
- * \brief Get a glyph from glyph cache.
+ * \brief Get a bitmap from bitmap cache.
  * \param key hash key
  * \return requested hash val or 0 if not found
 */ 
-glyph_hash_val_t* cache_find_glyph(glyph_hash_key_t* key)
+bitmap_hash_val_t* cache_find_bitmap(bitmap_hash_key_t* key)
 {
-       return hashmap_find(glyph_cache, key);
+       return hashmap_find(bitmap_cache, key);
 }
 
-void ass_glyph_cache_init(void)
+void ass_bitmap_cache_init(void)
 {
-       glyph_cache = hashmap_init(sizeof(glyph_hash_key_t),
-                                  sizeof(glyph_hash_val_t),
+       bitmap_cache = hashmap_init(sizeof(bitmap_hash_key_t),
+                                  sizeof(bitmap_hash_val_t),
                                   0xFFFF + 13,
-                                  glyph_hash_dtor, NULL, NULL);
+                                  bitmap_hash_dtor, NULL, NULL);
 }
 
-void ass_glyph_cache_done(void)
+void ass_bitmap_cache_done(void)
 {
-       hashmap_done(glyph_cache);
+       hashmap_done(bitmap_cache);
 }
 
-void ass_glyph_cache_reset(void)
+void ass_bitmap_cache_reset(void)
 {
-       ass_glyph_cache_done();
-       ass_glyph_cache_init();
+       ass_bitmap_cache_done();
+       ass_bitmap_cache_init();
 }
 
index 8e074579dbef16c67377f5c73b3de9afd9750c5a..67fac337ecc268cd3e7491dd486e6e123a051cc9 100644 (file)
@@ -27,8 +27,8 @@ void ass_font_cache_add(ass_font_t* font);
 void ass_font_cache_done(void);
 
 
-// describes a glyph; glyphs with equivalents structs are considered identical
-typedef struct glyph_hash_key_s {
+// describes a bitmap; bitmaps with equivalents structs are considered identical
+typedef struct bitmap_hash_key_s {
        char bitmap; // bool : true = bitmap, false = outline
        ass_font_t* font;
        int size; // font size
@@ -37,28 +37,27 @@ typedef struct glyph_hash_key_s {
        int bold, italic;
        char be; // blur edges
 
-       // the following affects bitmap glyphs only
        unsigned scale_x, scale_y; // 16.16
        int frx, fry, frz; // signed 16.16
        
        FT_Vector advance; // subpixel shift vector
-} glyph_hash_key_t;
+} bitmap_hash_key_t;
 
-typedef struct glyph_hash_val_s {
-       bitmap_t* bm; // the actual glyph bitmaps
+typedef struct bitmap_hash_val_s {
+       bitmap_t* bm; // the actual bitmaps
        bitmap_t* bm_o;
        bitmap_t* bm_s;
        FT_BBox bbox_scaled; // bbox after scaling, but before rotation
-       FT_Vector advance; // 26.6, advance distance to the next glyph in line
-} glyph_hash_val_t;
+       FT_Vector advance; // 26.6, advance distance to the next bitmap in line
+} bitmap_hash_val_t;
 
-void ass_glyph_cache_init(void);
-void cache_add_glyph(glyph_hash_key_t* key, glyph_hash_val_t* val);
-glyph_hash_val_t* cache_find_glyph(glyph_hash_key_t* key);
-void ass_glyph_cache_reset(void);
-void ass_glyph_cache_done(void);
+void ass_bitmap_cache_init(void);
+void cache_add_bitmap(bitmap_hash_key_t* key, bitmap_hash_val_t* val);
+bitmap_hash_val_t* cache_find_bitmap(bitmap_hash_key_t* key);
+void ass_bitmap_cache_reset(void);
+void ass_bitmap_cache_done(void);
 
-typedef struct hashmap_s hashmap_t;
+typedef struct hashmap_s hashmap_t; 
 typedef void (*hashmap_item_dtor_t)(void* key, size_t key_size, void* value, size_t value_size);
 typedef int (*hashmap_key_compare_t)(void* key1, void* key2, size_t key_size);
 typedef unsigned (*hashmap_hash_t)(void* key, size_t key_size);
index 1287c9d0bd04c6799ec9c0d4a7ef23bd226c6750..61a24cd0ebf5116ec1b7443e53e3fbe41c6a2b7a 100644 (file)
@@ -112,7 +112,7 @@ typedef struct glyph_info_s {
        int shadow;
        double frx, fry, frz; // rotation
        
-       glyph_hash_key_t hash_key;
+       bitmap_hash_key_t hash_key;
 } glyph_info_t;
 
 typedef struct line_info_s {
@@ -252,7 +252,7 @@ ass_renderer_t* ass_renderer_init(ass_library_t* library)
        // images_root and related stuff is zero-filled in calloc
        
        ass_font_cache_init();
-       ass_glyph_cache_init();
+       ass_bitmap_cache_init();
 
        text_info.glyphs = calloc(MAX_GLYPHS, sizeof(glyph_info_t));
        
@@ -266,7 +266,7 @@ ass_init_exit:
 void ass_renderer_done(ass_renderer_t* priv)
 {
        ass_font_cache_done();
-       ass_glyph_cache_done();
+       ass_bitmap_cache_done();
        if (render_context.stroker) {
                FT_Stroker_Done(render_context.stroker);
                render_context.stroker = 0;
@@ -386,7 +386,7 @@ static ass_image_t* render_text(text_info_t* text_info, int dst_x, int dst_y)
        int pen_x, pen_y;
        int i, error;
        bitmap_t* bm;
-       glyph_hash_val_t hash_val;
+       bitmap_hash_val_t hash_val;
        ass_image_t* head;
        ass_image_t** tail = &head;
 
@@ -414,7 +414,7 @@ static ass_image_t* render_text(text_info_t* text_info, int dst_x, int dst_y)
                                hash_val.bm_s = text_info->glyphs[i].bm_s;
                                hash_val.advance.x = text_info->glyphs[i].advance.x;
                                hash_val.advance.y = text_info->glyphs[i].advance.y;
-                               cache_add_glyph(&(text_info->glyphs[i].hash_key), &hash_val);
+                               cache_add_bitmap(&(text_info->glyphs[i].hash_key), &hash_val);
                        }
 
                }
@@ -1233,8 +1233,8 @@ static void free_render_context(void)
 static void get_glyph(int symbol, glyph_info_t* info, FT_Vector* advance)
 {
        int error;
-       glyph_hash_val_t* val;
-       glyph_hash_key_t* key = &(info->hash_key);
+       bitmap_hash_val_t* val;
+       bitmap_hash_key_t* key = &(info->hash_key);
        
        key->font = render_context.font;
        key->size = render_context.font_size;
@@ -1250,7 +1250,7 @@ static void get_glyph(int symbol, glyph_info_t* info, FT_Vector* advance)
        key->italic = render_context.italic;
        key->be = render_context.be;
 
-       val = cache_find_glyph(key);
+       val = cache_find_bitmap(key);
 /*     val = 0; */
        
        if (val) {
@@ -1968,7 +1968,7 @@ void ass_free_images(ass_image_t* img)
 static void ass_reconfigure(ass_renderer_t* priv)
 {
        priv->render_id = ++last_render_id;
-       ass_glyph_cache_reset();
+       ass_bitmap_cache_reset();
        ass_free_images(priv->prev_images_root);
        priv->prev_images_root = 0;
 }