summaryrefslogtreecommitdiffstats
path: root/libass/ass_render.c
diff options
context:
space:
mode:
authorgreg <greg@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-03-05 20:36:41 +0000
committergreg <greg@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-03-05 20:36:41 +0000
commitc23a1cdfb356bbf39a95ca8ee7bf6fbc8938d061 (patch)
treefbbb5810180443359b3227c32c0aee2a3451bf56 /libass/ass_render.c
parenta2020815ad088b6bed0329b04a8355388b6411e7 (diff)
downloadmpv-c23a1cdfb356bbf39a95ca8ee7bf6fbc8938d061.tar.bz2
mpv-c23a1cdfb356bbf39a95ca8ee7bf6fbc8938d061.tar.xz
Round shadow displacement to nearest int.
Use double for shadow displacement parameter. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28818 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass/ass_render.c')
-rw-r--r--libass/ass_render.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index c01bb74963..e8d18ed3d3 100644
--- a/libass/ass_render.c
+++ b/libass/ass_render.c
@@ -45,6 +45,7 @@
#define MAX_LINES 300
#define BE_RADIUS 1.5
#define BLUR_MAX_RADIUS 50.0
+#define ROUND(x) ((int) ((x) + .5))
static int last_render_id = 0;
@@ -116,7 +117,7 @@ typedef struct glyph_info_s {
// int height;
int be; // blur edges
double blur; // gaussian blur
- int shadow;
+ double shadow;
double frx, fry, frz; // rotation
bitmap_hash_key_t hash_key;
@@ -165,7 +166,7 @@ typedef struct render_context_s {
uint32_t fade; // alpha from \fad
char be; // blur edges
double blur; // gaussian blur
- int shadow;
+ double shadow;
int drawing_mode; // not implemented; when != 0 text is discarded, except for style override tags
effect_t effect_type;
@@ -421,8 +422,8 @@ static ass_image_t* render_text(text_info_t* text_info, int dst_x, int dst_y)
if ((info->symbol == 0) || (info->symbol == '\n') || !info->bm_s || (info->shadow == 0))
continue;
- pen_x = dst_x + info->pos.x + info->shadow;
- pen_y = dst_y + info->pos.y + info->shadow;
+ pen_x = dst_x + info->pos.x + ROUND(info->shadow);
+ pen_y = dst_y + info->pos.y + ROUND(info->shadow);
bm = info->bm_s;
tail = render_glyph(bm, pen_x, pen_y, info->c[3], 0, 1000000, tail);