linux 32bit真彩开机logo的实现

本文解析了Linux内核中显示logo的源代码实现,包括fbmem.c文件中的fb_show_logo函数及其分支fb_show_truecolor_logo函数。通过具体代码展示了如何在不同颜色模式下绘制logo,特别关注真彩色模式下的像素填充过程。
摘要由CSDN通过智能技术生成
1.修改kernel/drivers/video/fbmem.c

int fb_show_logo(struct fb_info *info, int rotate)
{
#ifdef TRUE_COLOR
        fb_show_truecolor_logo(info);
        return 1;
#else    
    int y;

    y = fb_show_logo_line(info, rotate, fb_logo.logo, 0,
                  num_online_cpus());
    y = fb_show_extra_logos(info, y, rotate);

    return y;
#endif
void fb_show_truecolor_logo(struct fb_info *info)
{
    unsigned int i = 0,j=0,tmp;
    unsigned char pixel[4];

unsigned char* addr = (unsigned char*)info->screen_base;


for(i = 0; i<info->var.xres; i++) {
        
        tmp = ((info->var.yres)*(info->var.xres))*4-((info->var.xres)*4)*i;
        
        for(m=0;m<((info->var.xres)*4);m+=4)
        {
               
            pixel[0] = truecolor_logo_data[tmp+m+2];
            pixel[1] = truecolor_logo_data[tmp+m+3];
            pixel[2] = truecolor_logo_data[tmp+m+0];
            pixel[3] = truecolor_logo_data[tmp+m+1];
            *(addr+(j++)) = pixel[0];
            *(addr+(j++)) = pixel[1];
            *(addr+(j++)) = pixel[2];
            *(addr+(j++)) = pixel[3];
        }

    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值