diff options
Diffstat (limited to 'payloads/libpayload/include/cbgfx.h')
-rw-r--r-- | payloads/libpayload/include/cbgfx.h | 26 |
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); |