⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bbt422.c

📁 linux嵌入式开发程序
💻 C
字号:

/*===========================================================================
        2D Graphics Library
        ALL RIGHTS RESERVED, COPYRIGHT (C) FUJITSU LIMITED 1993-2002
        LICENSED MATERIAL - PROGRAM PROPERTY OF FUJITSU LIMITED
 ===========================================================================*/
#include <stdio.h>#include "gl.h"#include "defhook.h"#define BitLen  16#define BitSft  4#define TileMask    (TileLen-1)#define TileBpl     64int_GL_bbtileYUV422(GL_WP *gp){    int     sbitp,dbitp,words,lines, tj ;    BYTE    *dadr, *tilep ;#ifndef xNo00010008    long    sbase  = ( ( gp->bitblt.dx - (gp->bitblt.bx&~1) ) & TileMask) * (BitLen>>3) ;#endif    dadr  = _AddAdr(gp->hwork.VRAMadr[gp->hwork.page][0],gp->bitblt.doffs) ;    dbitp = 0 ;    AdjAccAdr32(dadr,dbitp) ;    tj    =  ( gp->bitblt.dy - gp->bitblt.by ) & TileMask ;    words = ((gp->bitblt.tx<<BitSft) + dbitp)>>5 ;    lines = gp->bitblt.ty ;    while(lines-->0){        register DWORD  *dst ;        register DWORD  d, o ;        register int    tx ;        register long   soffs ;#ifdef xNo00010008        soffs  = ( ( gp->bitblt.dx - gp->bitblt.bx ) & TileMask) * (BitLen>>3) ;#else        soffs  = sbase ;#endif        sbitp  = 0 ;        AdjAccOffs32(soffs, sbitp) ;        tilep  = (BYTE *)gp->bitblt.tilep + tj * TileBpl ;        tx     = gp->bitblt.tx ;        dst    = (DWORD *)dadr ;        if(words>0){            if(dbitp>0){                d = *(DWORD *)(tilep+soffs) ;                o = *dst ;                soffs += 4 ;                if(soffs>=TileBpl)                    soffs = 0 ;                *dst++ = ( d & 0x0000ff00 )                       | ( o & 0xff000000 )                       | ( ( ( (d&0x00ff00ff)+(o&0x00ff00ff) )>>1)& 0x00ff00ff ) ;                tx-- ;            }            while(tx>=2){                *dst++ = *(DWORD *)(tilep+soffs) ;                soffs += 4 ;                if(soffs>=TileBpl)                    soffs = 0 ;                tx -= 2 ;            }        }        if(tx>0){            d = *(DWORD *)(tilep+soffs) ;            o = *dst ;            *dst =   ( d & 0xff000000 )                   | ( o & 0x0000ff00 )                   | ( ( ( (d&0x00ff00ff)+(o&0x00ff00ff) )>>1)& 0x00ff00ff ) ;        }        tj = (tj+1) & TileMask ;        dadr = _AddAdr(dadr,gp->bitblt.dlbytes) ;    }    return GL_Ok ;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -