vlc | branch: master | Francois Cartegnie <[email protected]> | Mon Nov 27 12:53:38 2017 +0100| [d8476023cd8e402c59356733d0e0670ea19c95f2] | committer: Francois Cartegnie
vout: DrawRect: refactor and memset > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d8476023cd8e402c59356733d0e0670ea19c95f2 --- src/video_output/video_widgets.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/video_output/video_widgets.c b/src/video_output/video_widgets.c index 61c7dcc75e..c143d7ec6e 100644 --- a/src/video_output/video_widgets.c +++ b/src/video_output/video_widgets.c @@ -51,21 +51,21 @@ static void DrawRect(subpicture_region_t *r, int fill, uint8_t color, { uint8_t *p = r->p_picture->p->p_pixels; int pitch = r->p_picture->p->i_pitch; + if( x1 > x2 || y1 > y2 ) + return; if (fill == STYLE_FILLED) { - for (int y = y1; y <= y2; y++) { - for (int x = x1; x <= x2; x++) - p[x + pitch * y] = color; + if(x1 == 0 && x2 + 1 == r->p_picture->p->i_visible_pitch) { + memset(&p[pitch * y1], color, pitch * (y2 - y1 + 1)); + } else { + for (int y = y1; y <= y2; y++) + memset(&p[x1 + pitch * y], color, x2 - x1 + 1); } } else { - for (int y = y1; y <= y2; y++) { - p[x1 + pitch * y] = color; - p[x2 + pitch * y] = color; - } - for (int x = x1; x <= x2; x++) { - p[x + pitch * y1] = color; - p[x + pitch * y2] = color; - } + DrawRect(r, STYLE_FILLED, color, x1, y1, x1, y2); + DrawRect(r, STYLE_FILLED, color, x2, y1, x2, y2); + DrawRect(r, STYLE_FILLED, color, x1, y1, x2, y1); + DrawRect(r, STYLE_FILLED, color, x1, y2, x2, y2); } } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
