[PATCH 07/11] Introduce graphic utils

Sascha Hauer s.hauer at pengutronix.de
Wed Sep 12 03:33:49 EDT 2012


On Sat, Sep 08, 2012 at 08:05:38PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> to Factorise pixel rendering
> 
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> ---
>  commands/splash.c        |   61 +---------------------------------
>  include/graphic_utils.h  |   13 ++++++++
>  include/image_renderer.h |   20 -----------
>  lib/Makefile             |    1 +
>  lib/bmp.c                |    5 +--
>  lib/graphic_utils.c      |   83 ++++++++++++++++++++++++++++++++++++++++++++++
>  6 files changed, 101 insertions(+), 82 deletions(-)
>  create mode 100644 include/graphic_utils.h
>  create mode 100644 lib/graphic_utils.c
> 
> diff --git a/commands/splash.c b/commands/splash.c
> index 4bddc6c..f4b975b 100644
> --- a/commands/splash.c
> +++ b/commands/splash.c
> @@ -8,66 +8,7 @@
>  #include <fcntl.h>
>  #include <fb.h>
>  #include <image_renderer.h>
> -
> -static u32 get_pixel(struct fb_info *info, u32 color)
> -{
> -	u32 px;
> -	u8 t = (color >> 24) & 0xff;
> -	u8 r = (color >> 16) & 0xff;
> -	u8 g = (color >> 8 ) & 0xff;
> -	u8 b = (color >> 0 ) & 0xff;
> -
> -	if (info->grayscale) {
> -		 px = (r | g | b) ? 0xffffffff : 0x0;
> -		 return px;
> -	}
> -
> -	px = (t >> (8 - info->transp.length)) << info->transp.offset |
> -		 (r >> (8 - info->red.length)) << info->red.offset |
> -		 (g >> (8 - info->green.length)) << info->green.offset |
> -		 (b >> (8 - info->blue.length)) << info->blue.offset;
> -
> -	return px;
> -}
> -
> -static void memsetw(void *s, u16 c, size_t n)
> -{
> -	size_t i;
> -	u16* tmp = s;
> -
> -	for (i = 0; i < n; i++)
> -		*tmp++ = c;
> -}
> -
> -static void memsetl(void *s, u32 c, size_t n)
> -{
> -	size_t i;
> -	u32* tmp = s;
> -
> -	for (i = 0; i < n; i++)
> -		*tmp++ = c;
> -}
> -
> -static void memset_pixel(struct fb_info *info, void* buf, u32 color, size_t size)
> -{
> -	u32 px;
> -	u8 *screen = buf;
> -
> -	px = get_pixel(info, color);
> -
> -	switch (info->bits_per_pixel) {
> -	case 8:
> -		memset(screen, (uint8_t)px, size);
> -		break;
> -	case 16:
> -		memsetw(screen, (uint16_t)px, size);
> -		break;
> -	case 32:
> -	case 24:
> -		memsetl(screen, px, size);
> -		break;
> -	}
> -}

These were introduced with the last patch. The order should be reversed.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list