summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr.Smile <vabnick@gmail.com>2017-09-20 00:55:58 +0300
committerDr.Smile <vabnick@gmail.com>2019-05-19 20:18:51 +0300
commitfcf1634387614439ceac1590c3861467f2a21c86 (patch)
tree3937d9ff1715921603cea844866968cdf8548172
parent06b6548732a651fa61ebd372c915aec55dd77006 (diff)
downloadlibass-fcf1634387614439ceac1590c3861467f2a21c86.tar.bz2
libass-fcf1634387614439ceac1590c3861467f2a21c86.tar.xz
drawing: remove unnecessary fields from ASS_Drawing struct
-rw-r--r--libass/ass_cache_template.h1
-rw-r--r--libass/ass_drawing.c20
-rw-r--r--libass/ass_drawing.h3
-rw-r--r--libass/ass_render.c2
4 files changed, 4 insertions, 22 deletions
diff --git a/libass/ass_cache_template.h b/libass/ass_cache_template.h
index ba9303f..2cb2df4 100644
--- a/libass/ass_cache_template.h
+++ b/libass/ass_cache_template.h
@@ -114,7 +114,6 @@ START(drawing, drawing_hash_key)
GENERIC(unsigned, border_style)
GENERIC(int, hspacing)
GENERIC(int, scale)
- GENERIC(unsigned, hash)
STRING(text)
END(DrawingHashKey)
diff --git a/libass/ass_drawing.c b/libass/ass_drawing.c
index 5918469..01547d8 100644
--- a/libass/ass_drawing.c
+++ b/libass/ass_drawing.c
@@ -265,29 +265,17 @@ void ass_drawing_set_text(ASS_Drawing *drawing, char *str, size_t len)
}
/*
- * \brief Create a hashcode for the drawing
- * XXX: To avoid collisions a better hash algorithm might be useful.
- */
-void ass_drawing_hash(ASS_Drawing *drawing)
-{
- if (!drawing->text)
- return;
- drawing->hash = fnv_32a_str(drawing->text, FNV1_32A_INIT);
-}
-
-/*
* \brief Convert token list to outline. Calls the line and curve evaluators.
*/
ASS_Outline *ass_drawing_parse(ASS_Drawing *drawing, bool raw_mode)
{
bool started = false;
- ASS_DrawingToken *token;
ASS_Vector pen = {0, 0};
- drawing->tokens = drawing_tokenize(drawing->text);
+ ASS_DrawingToken *tokens = drawing_tokenize(drawing->text);
drawing_prepare(drawing);
- token = drawing->tokens;
+ ASS_DrawingToken *token = tokens;
while (token) {
// Draw something according to current command
switch (token->type) {
@@ -356,10 +344,10 @@ ASS_Outline *ass_drawing_parse(ASS_Drawing *drawing, bool raw_mode)
}
drawing_finish(drawing, raw_mode);
- drawing_free_tokens(drawing->tokens);
+ drawing_free_tokens(tokens);
return &drawing->outline;
error:
- drawing_free_tokens(drawing->tokens);
+ drawing_free_tokens(tokens);
return NULL;
}
diff --git a/libass/ass_drawing.h b/libass/ass_drawing.h
index 95e361f..5fef7e0 100644
--- a/libass/ass_drawing.h
+++ b/libass/ass_drawing.h
@@ -51,11 +51,9 @@ typedef struct {
int desc; // descender
ASS_Outline outline; // target outline
ASS_Vector advance; // advance (from cbox)
- int hash; // hash value (for caching)
// private
ASS_Library *library;
- ASS_DrawingToken *tokens; // tokenized drawing
double point_scale_x;
double point_scale_y;
ASS_Rect cbox; // bounding box, or let's say... VSFilter's idea of it
@@ -64,7 +62,6 @@ typedef struct {
ASS_Drawing *ass_drawing_new(ASS_Library *lib);
void ass_drawing_free(ASS_Drawing *drawing);
void ass_drawing_set_text(ASS_Drawing *drawing, char *str, size_t n);
-void ass_drawing_hash(ASS_Drawing *drawing);
ASS_Outline *ass_drawing_parse(ASS_Drawing *drawing, bool raw_mode);
#endif /* LIBASS_DRAWING_H */
diff --git a/libass/ass_render.c b/libass/ass_render.c
index 4ac5798..1f9bc81 100644
--- a/libass/ass_render.c
+++ b/libass/ass_render.c
@@ -975,7 +975,6 @@ fill_glyph_hash(ASS_Renderer *priv, OutlineHashKey *outline_key,
// so for normal borders, maximize cache utility by ignoring it
key->hspacing =
info->border_style == 3 ? double_to_d16(info->hspacing) : 0;
- key->hash = info->drawing->hash;
key->text = info->drawing->text;
key->pbo = info->drawing->pbo;
key->scale = info->drawing->scale;
@@ -1032,7 +1031,6 @@ get_outline_glyph(ASS_Renderer *priv, GlyphInfo *info)
if (info->drawing) {
ASS_Drawing *drawing = info->drawing;
- ass_drawing_hash(drawing);
if(!ass_drawing_parse(drawing, false) ||
!outline_copy(&val->outline, &drawing->outline)) {
ass_cache_commit(val, 1);