annotate libass/ass_shaper.h @ 35584:fb92c6de7f70

Reduce register usage in an asm block. Reduce to 4 registers in an asm block of render_frame_yuv420p_sse4 with simplification of code. After the modification, this function can still be ~3.5x faster than render_frame_yuv420p.
author upsuper
date Fri, 14 Dec 2012 02:16:30 +0000
parents 575ad51cc996
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
34300
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
1 /*
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
2 * Copyright (C) 2011 Grigori Goronzy <greg@chown.ath.cx>
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
3 *
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
4 * This file is part of libass.
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
5 *
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
6 * Permission to use, copy, modify, and distribute this software for any
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
9 *
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
17 */
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
18
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
19 #ifndef LIBASS_SHAPER_H
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
20 #define LIBASS_SHAPER_H
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
21
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
22 #include "config.h"
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
23
34342
575ad51cc996 Allow compiling libass without fribidi again.
reimar
parents: 34300
diff changeset
24 #ifdef CONFIG_FRIBIDI
34300
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
25 #include <fribidi/fribidi.h>
34342
575ad51cc996 Allow compiling libass without fribidi again.
reimar
parents: 34300
diff changeset
26 #else
575ad51cc996 Allow compiling libass without fribidi again.
reimar
parents: 34300
diff changeset
27 typedef int FriBidiParType;
575ad51cc996 Allow compiling libass without fribidi again.
reimar
parents: 34300
diff changeset
28 typedef int FriBidiStrIndex;
575ad51cc996 Allow compiling libass without fribidi again.
reimar
parents: 34300
diff changeset
29 #endif
34300
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
30 #include "ass_render.h"
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
31
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
32 void ass_shaper_info(ASS_Library *lib);
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
33 ASS_Shaper *ass_shaper_new(size_t prealloc);
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
34 void ass_shaper_free(ASS_Shaper *shaper);
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
35 void ass_shaper_set_kerning(ASS_Shaper *shaper, int kern);
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
36 void ass_shaper_find_runs(ASS_Shaper *shaper, ASS_Renderer *render_priv,
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
37 GlyphInfo *glyphs, size_t len);
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
38 void ass_shaper_set_base_direction(ASS_Shaper *shaper, FriBidiParType dir);
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
39 void ass_shaper_set_language(ASS_Shaper *shaper, const char *code);
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
40 void ass_shaper_set_level(ASS_Shaper *shaper, ASS_ShapingLevel level);
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
41 void ass_shaper_shape(ASS_Shaper *shaper, TextInfo *text_info);
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
42 void ass_shaper_cleanup(ASS_Shaper *shaper, TextInfo *text_info);
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
43 FriBidiStrIndex *ass_shaper_reorder(ASS_Shaper *shaper, TextInfo *text_info);
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
44 FriBidiParType resolve_base_direction(int font_encoding);
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
45
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
46 void ass_shaper_font_data_free(ASS_ShaperFontData *priv);
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
47
77976b68285b Commit added forgotten in previous commit.
reimar
parents:
diff changeset
48 #endif