summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr.Smile <vabnick@gmail.com>2020-12-13 16:09:25 +0300
committerDr.Smile <vabnick@gmail.com>2021-02-22 18:44:54 +0300
commit05cde3b5b686e41f96e6b5b1a731617f220aedda (patch)
treeff11cef3e60c55804ecdccbb2ad436374c29c49d
parent737bdb3622cfa21da82e30d4329ef654b0ec216f (diff)
downloadlibass-05cde3b5b686e41f96e6b5b1a731617f220aedda.tar.bz2
libass-05cde3b5b686e41f96e6b5b1a731617f220aedda.tar.xz
Move ASS_FontDesc to generic cache infrastructure
-rw-r--r--libass/ass_cache.c25
-rw-r--r--libass/ass_cache_template.h7
-rw-r--r--libass/ass_font.h8
3 files changed, 7 insertions, 33 deletions
diff --git a/libass/ass_cache.c b/libass/ass_cache.c
index d5106df..d0dd6fb 100644
--- a/libass/ass_cache.c
+++ b/libass/ass_cache.c
@@ -38,31 +38,6 @@
#include "ass_cache_template.h"
// font cache
-static uint32_t font_hash(void *buf, uint32_t hval)
-{
- ASS_FontDesc *desc = buf;
- hval = fnv_32a_str(desc->family, hval);
- hval = fnv_32a_buf(&desc->bold, sizeof(desc->bold), hval);
- hval = fnv_32a_buf(&desc->italic, sizeof(desc->italic), hval);
- hval = fnv_32a_buf(&desc->vertical, sizeof(desc->vertical), hval);
- return hval;
-}
-
-static bool font_compare(void *key1, void *key2)
-{
- ASS_FontDesc *a = key1;
- ASS_FontDesc *b = key2;
- if (strcmp(a->family, b->family) != 0)
- return false;
- if (a->bold != b->bold)
- return false;
- if (a->italic != b->italic)
- return false;
- if (a->vertical != b->vertical)
- return false;
- return true;
-}
-
static bool font_key_move(void *dst, void *src)
{
ASS_FontDesc *k = src;
diff --git a/libass/ass_cache_template.h b/libass/ass_cache_template.h
index c0bcfac..80515c2 100644
--- a/libass/ass_cache_template.h
+++ b/libass/ass_cache_template.h
@@ -50,6 +50,13 @@
+START(font, ass_font_desc )
+ STRING(family)
+ GENERIC(unsigned, bold)
+ GENERIC(unsigned, italic)
+ GENERIC(int, vertical) // @font vertical layout
+END(ASS_FontDesc)
+
// describes an outline bitmap
START(bitmap, bitmap_hash_key)
GENERIC(OutlineHashValue *, outline)
diff --git a/libass/ass_font.h b/libass/ass_font.h
index 05b776b..71bbf3f 100644
--- a/libass/ass_font.h
+++ b/libass/ass_font.h
@@ -25,7 +25,6 @@
#include FT_OUTLINE_H
typedef struct ass_font ASS_Font;
-typedef struct ass_font_desc ASS_FontDesc;
#include "ass.h"
#include "ass_types.h"
@@ -39,13 +38,6 @@ typedef struct ass_font_desc ASS_FontDesc;
#define DECO_STRIKETHROUGH 2
#define DECO_ROTATE 4
-struct ass_font_desc {
- char *family;
- unsigned bold;
- unsigned italic;
- int vertical; // @font vertical layout
-};
-
struct ass_font {
ASS_FontDesc desc;
ASS_Library *library;