bbs422.c

来自「linux嵌入式开发程序」· C语言 代码 · 共 77 行

C
77
字号

/*===========================================================================
        2D Graphics Library
        ALL RIGHTS RESERVED, COPYRIGHT (C) FUJITSU LIMITED 1993-2002
        LICENSED MATERIAL - PROGRAM PROPERTY OF FUJITSU LIMITED
 ===========================================================================*/
#include "gl.h"#include "defhook.h"#define BitSft  4/*    EDGE_BLEND  ... Blend by background color on both edges. */#define   EDGE_BLENDint_GL_bbsetYUV422(GL_WP *gp) {    long    doffs ;    int     dbitp,words,lines ;    register    DWORD   color ;    color = gp->bitblt.color ;    doffs = gp->bitblt.doffs ;    dbitp = gp->bitblt.dbitp ;    lines = gp->bitblt.ty ;    AdjAccOffs32(doffs,dbitp) ;    words = ((gp->bitblt.tx<<BitSft) + dbitp)>>5 ;    while(lines-->0){        register DWORD  *dst ;        register DWORD  o ;        register int    tx ;        tx   = gp->bitblt.tx ;        dst  = _AddAdr(gp->hwork.VRAMadr[gp->hwork.page][0],doffs) ;        if(words>0){            if(dbitp>0){#ifdef EDGE_BLEND                o = *dst ;                *dst =   ( color & 0x0000ff00 )                       | ( o     & 0xff000000 )                       | ( ( ( (color&0x00ff00ff)+(o&0x00ff00ff) )>>1)& 0x00ff00ff ) ;#else                *dst = color ;#endif                dst++ ;                tx-- ;            }            while(tx>=2){                *dst = color ;                dst++ ;                tx  -= 2 ;            }        }        if(tx>0){#ifdef EDGE_BLEND            o = *dst ;            *dst =   ( color & 0xff000000 )                   | ( o     & 0x0000ff00 )                   | ( ( ( (color&0x00ff00ff)+(o&0x00ff00ff) )>>1)& 0x00ff00ff ) ;#else            *dst = color ;#endif        }        doffs += gp->bitblt.dlbytes ;    }    return GL_Ok ;}

⌨️ 快捷键说明

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