aboutsummaryrefslogtreecommitdiff
path: root/payloads/libpayload/include/cbgfx.h
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/include/cbgfx.h')
-rw-r--r--payloads/libpayload/include/cbgfx.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/payloads/libpayload/include/cbgfx.h b/payloads/libpayload/include/cbgfx.h
index 1f3e0b48d2..074a42d408 100644
--- a/payloads/libpayload/include/cbgfx.h
+++ b/payloads/libpayload/include/cbgfx.h
@@ -4,7 +4,9 @@
* Copyright (C) 2015 Google, Inc.
*/
-#include <stdint.h>
+#include <libpayload.h>
+#include <arch/types.h>
+#include <stddef.h>
/*
* API error codes
@@ -16,6 +18,14 @@
#define CBGFX_ERROR_INIT 2
/* drawing beyond canvas boundary */
#define CBGFX_ERROR_BOUNDARY 3
+/* bitmap error: signature mismatch */
+#define CBGFX_ERROR_BITMAP_SIGNATURE 0x10
+/* bitmap error: unsupported format */
+#define CBGFX_ERROR_BITMAP_FORMAT 0x11
+/* bitmap error: invalid data */
+#define CBGFX_ERROR_BITMAP_DATA 0x12
+/* bitmap error: scaling out of range */
+#define CBGFX_ERROR_SCALE_OUT_OF_RANGE 0x13
struct vector {
union {
@@ -64,3 +74,17 @@ int draw_box(const struct vector *top_left_rel,
* Clear the canvas
*/
int clear_canvas(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
+ * canvas (0 - CANVAS_SCALE).
+ * scale_rel: scale factor relative to the canvas width (0 - CANVAS_SCALE).
+ * bitmap: pointer to the bitmap data, starting from the file header.
+ * size: size of the bitmap data
+ *
+ * return: CBGFX_* error codes
+ */
+int draw_bitmap(const struct vector *top_left_rel,
+ size_t scale_rel, const void *bitmap, size_t size);