From 09ad206cdad1b427c331a8f04a63c198e41b5ae9 Mon Sep 17 00:00:00 2001 From: Daisuke Nojiri Date: Mon, 3 Aug 2015 10:51:38 -0700 Subject: cbgfx: add draw_bitmap draw_bitmap renders a bitmap image on screen with position and sizes scaled relative to the screen. images are scaled up or down by nearest neighbor interpolation. BUG=chrome-os-partner:43444 BRANCH=tot TEST=drew bitmap images on Samus Change-Id: Ib599acc85b25626a6aed1fa9884ecd8e169bb860 Signed-off-by: Patrick Georgi Original-Commit-Id: c910c9cdb7efc53aace067bd081aeefc07556811 Original-Reviewed-on: https://chromium-review.googlesource.com/290302 Original-Reviewed-by: Aaron Durbin Original-Change-Id: Ib599acc85b25626a6aed1fa9884ecd8e169bb860 Original-Signed-off-by: Daisuke Nojiri Original-Reviewed-on: https://chromium-review.googlesource.com/295532 Reviewed-on: http://review.coreboot.org/11584 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi --- payloads/libpayload/include/cbgfx.h | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'payloads/libpayload/include/cbgfx.h') 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 +#include +#include +#include /* * 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); -- cgit v1.2.3