[image] Add image_pixbuf() to create pixel buffer from image

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2013-11-27 01:13:18 +00:00
parent 2c161283d5
commit 09f31e9fc4
2 changed files with 40 additions and 3 deletions

View File

@@ -456,3 +456,29 @@ int image_set_trust ( int require_trusted, int permanent ) {
return 0;
}
/**
* Create pixel buffer from image
*
* @v image Image
* @v pixbuf Pixel buffer to fill in
* @ret rc Return status code
*/
int image_pixbuf ( struct image *image, struct pixel_buffer **pixbuf ) {
int rc;
/* Check that this image can be used to create a pixel buffer */
if ( ( rc = image_probe ( image ) ) != 0 )
return rc;
if ( ! image->type->pixbuf )
return -ENOTSUP;
/* Try creating pixel buffer */
if ( ( rc = image->type->pixbuf ( image, pixbuf ) ) != 0 ) {
DBGC ( image, "IMAGE %s could not create pixel buffer: %s\n",
image->name, strerror ( rc ) );
return rc;
}
return 0;
}