summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2015-09-21 17:17:25 -0700
committerPatrick Georgi <pgeorgi@google.com>2015-10-27 15:22:00 +0100
commitfed269b1c44eb93c355fd0d6cb5ce619cd97d068 (patch)
tree4bb8f8b5d7eb5aa42c53cd0f720dd40e198ebb09
parentdd49eccb50b99ca34d3cecc844e38266a0f6a6cf (diff)
downloadcoreboot-fed269b1c44eb93c355fd0d6cb5ce619cd97d068.tar.xz
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 <pgeorgi@google.com> Original-Commit-Id: 1ab04e2cc8d3c3e36e4eb41d9e7b0fdc25595200 Original-Change-Id: I1b3890b9e8ca52e796f417b5f41d4fa02a97a255 Original-Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/301451 Original-Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: http://review.coreboot.org/11924 Tested-by: build bot (Jenkins)
-rw-r--r--payloads/libpayload/drivers/video/graphics.c16
-rw-r--r--payloads/libpayload/include/cbgfx.h5
2 files changed, 21 insertions, 0 deletions
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
@@ -91,6 +91,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.
*
* top_left_rel: coordinate of the top left corner of the image relative to the