From fed269b1c44eb93c355fd0d6cb5ce619cd97d068 Mon Sep 17 00:00:00 2001 From: Daisuke Nojiri Date: Mon, 21 Sep 2015 17:17:25 -0700 Subject: cbgfx: add clear_screen clear_screen clears the screen with the specified color. BUG=none BRANCH=tot TEST=Tested on Samus Change-Id: I45e61c67485dbdbe15e2b602718232bc6382ad00 Signed-off-by: Patrick Georgi Original-Commit-Id: 1ab04e2cc8d3c3e36e4eb41d9e7b0fdc25595200 Original-Change-Id: I1b3890b9e8ca52e796f417b5f41d4fa02a97a255 Original-Signed-off-by: Daisuke Nojiri Original-Reviewed-on: https://chromium-review.googlesource.com/301451 Original-Reviewed-by: Randall Spangler Reviewed-on: http://review.coreboot.org/11924 Tested-by: build bot (Jenkins) --- payloads/libpayload/drivers/video/graphics.c | 16 ++++++++++++++++ payloads/libpayload/include/cbgfx.h | 5 +++++ 2 files changed, 21 insertions(+) (limited to 'payloads/libpayload') diff --git a/payloads/libpayload/drivers/video/graphics.c b/payloads/libpayload/drivers/video/graphics.c index d9c731b064..d4d08f8fc8 100644 --- a/payloads/libpayload/drivers/video/graphics.c +++ b/payloads/libpayload/drivers/video/graphics.c @@ -194,6 +194,22 @@ int clear_canvas(struct rgb_color *rgb) return draw_box(&box, rgb); } +int clear_screen(struct rgb_color *rgb) +{ + uint32_t color; + struct vector p; + + if (cbgfx_init()) + return CBGFX_ERROR_INIT; + + color = calculate_color(rgb); + for (p.y = 0; p.y < screen.size.height; p.y++) + for (p.x = 0; p.x < screen.size.width; p.x++) + set_pixel(&p, color); + + return CBGFX_SUCCESS; +} + /* * This check guarantees we will not try to read outside pixel data. */ diff --git a/payloads/libpayload/include/cbgfx.h b/payloads/libpayload/include/cbgfx.h index 2d6b6e938a..3c28a13cb4 100644 --- a/payloads/libpayload/include/cbgfx.h +++ b/payloads/libpayload/include/cbgfx.h @@ -90,6 +90,11 @@ int draw_box(const struct rect *box, const struct rgb_color *rgb); */ int clear_canvas(struct rgb_color *rgb); +/* + * Clear the screen + */ +int clear_screen(struct rgb_color *rgb); + /* * Draw a bitmap image on screen. * -- cgit v1.2.3