cbgfx: add load_bitmap

This change adds load_bitmap API, which loads a bitmap file from cbfs
and returns a pointer to the image data.

BUG=none
BRANCH=tot
TEST=Tested on Samus

Change-Id: I7d7874f6f68c414dc877a012ad96c393e42dc35e
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Original-Commit-Id: 9d33e713a0cf6bd1365418dad989e47e86db01e4
Original-Change-Id: Idbf9682c2fa9df3f0bd296ca47edd02cd09cfd01
Original-Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/302194
Original-Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: http://review.coreboot.org/11925
Tested-by: build bot (Jenkins)
This commit is contained in:
Daisuke Nojiri 2015-09-24 12:42:17 -07:00 committed by Patrick Georgi
parent fed269b1c4
commit bed16d9706
2 changed files with 27 additions and 0 deletions

View File

@ -5,6 +5,7 @@
*/ */
#include <libpayload.h> #include <libpayload.h>
#include <cbfs.h>
#include <sysinfo.h> #include <sysinfo.h>
#include "bitmap.h" #include "bitmap.h"
@ -145,6 +146,20 @@ static int cbgfx_init(void)
return 0; return 0;
} }
void *load_bitmap(const char *name, size_t *size)
{
static struct cbfs_media media;
static int cbfs_media_initialized = 0;
if (!cbfs_media_initialized) {
if (init_default_cbfs_media(&media)) {
printf("Failed to initialize default media\n");
return NULL;
}
}
cbfs_media_initialized = 1;
return cbfs_get_file_content(&media, name, CBFS_TYPE_RAW, size);
}
int draw_box(const struct rect *box, const struct rgb_color *rgb) int draw_box(const struct rect *box, const struct rgb_color *rgb)
{ {
struct vector top_left; struct vector top_left;

View File

@ -73,6 +73,18 @@ struct rgb_color {
* y values increasing towards bottom of screen. * y values increasing towards bottom of screen.
*/ */
/*
* Load a bitmap file from cbfs
*
* Memory is allocated automatically and it's caller's responsibility to free it
*
* name: name of the bitmap file
* size: (OUT) size of the image
*
* return: pointer to the image data in memory or NULL on error
*/
void *load_bitmap(const char *name, size_t *size);
/* /*
* draw a box filled with a color on screen * draw a box filled with a color on screen
* *