diff options
author | Grigori Goronzy <greg@blackbox> | 2011-06-26 05:44:52 +0200 |
---|---|---|
committer | Grigori Goronzy <greg@blackbox> | 2011-06-26 05:44:52 +0200 |
commit | c13cb222435ff61533a26efcd46c6246ea541dc1 (patch) | |
tree | f03ac5753c0b2b790da042655b738aebe9af4a0d /libass/ass_render.c | |
parent | 1d3bc3309153410ea8baaa111ee846f289b572a2 (diff) | |
download | libass-c13cb222435ff61533a26efcd46c6246ea541dc1.tar.bz2 libass-c13cb222435ff61533a26efcd46c6246ea541dc1.tar.xz |
bitmap: add stride
Add stride support to the basic bitmap type used for low-level
rasterization.
Diffstat (limited to 'libass/ass_render.c')
-rw-r--r-- | libass/ass_render.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c index 021bfc4..b036bf2 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -296,18 +296,18 @@ static ASS_Image **render_glyph_i(ASS_Renderer *render_priv, // split up into left and right for karaoke, if needed if (lbrk > r[j].x0) { if (lbrk > r[j].x1) lbrk = r[j].x1; - img = my_draw_bitmap(bm->buffer + r[j].y0 * bm->w + r[j].x0, + img = my_draw_bitmap(bm->buffer + r[j].y0 * bm->stride + r[j].x0, lbrk - r[j].x0, r[j].y1 - r[j].y0, - bm->w, dst_x + r[j].x0, dst_y + r[j].y0, color); + bm->stride, dst_x + r[j].x0, dst_y + r[j].y0, color); if (!img) break; *tail = img; tail = &img->next; } if (lbrk < r[j].x1) { if (lbrk < r[j].x0) lbrk = r[j].x0; - img = my_draw_bitmap(bm->buffer + r[j].y0 * bm->w + lbrk, + img = my_draw_bitmap(bm->buffer + r[j].y0 * bm->stride + lbrk, r[j].x1 - lbrk, r[j].y1 - r[j].y0, - bm->w, dst_x + lbrk, dst_y + r[j].y0, color2); + bm->stride, dst_x + lbrk, dst_y + r[j].y0, color2); if (!img) break; *tail = img; tail = &img->next; @@ -387,8 +387,8 @@ render_glyph(ASS_Renderer *render_priv, Bitmap *bm, int dst_x, int dst_y, if (brk > b_x0) { // draw left part if (brk > b_x1) brk = b_x1; - img = my_draw_bitmap(bm->buffer + bm->w * b_y0 + b_x0, - brk - b_x0, b_y1 - b_y0, bm->w, + img = my_draw_bitmap(bm->buffer + bm->stride * b_y0 + b_x0, + brk - b_x0, b_y1 - b_y0, bm->stride, dst_x + b_x0, dst_y + b_y0, color); if (!img) return tail; *tail = img; @@ -397,8 +397,8 @@ render_glyph(ASS_Renderer *render_priv, Bitmap *bm, int dst_x, int dst_y, if (brk < b_x1) { // draw right part if (brk < b_x0) brk = b_x0; - img = my_draw_bitmap(bm->buffer + bm->w * b_y0 + brk, - b_x1 - brk, b_y1 - b_y0, bm->w, + img = my_draw_bitmap(bm->buffer + bm->stride * b_y0 + brk, + b_x1 - brk, b_y1 - b_y0, bm->stride, dst_x + brk, dst_y + b_y0, color2); if (!img) return tail; *tail = img; |