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

📄 bbg422.c

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

/*===========================================================================
        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     4int_GL_bbgetYUV422(GL_WP *gp){    long    soffs ;    int     sbitp,dbitp,words,lines ;    char    *dadr ;    dadr = (char  *)gp->bitblt.doffs ;    soffs = gp->bitblt.soffs ;    sbitp = gp->bitblt.sbitp ;    dbitp = gp->bitblt.dbitp ;    lines = gp->bitblt.ty ;    AdjAccOffs32(soffs,sbitp) ;    AdjAccAdr32(dadr,dbitp) ;    words = ((gp->bitblt.tx<<BitSft)+dbitp)>>5 ;    if(sbitp==dbitp){        while(lines-->0){            register DWORD  *src ;            register DWORD  *dst ;            register long   tx ;            tx  = gp->bitblt.tx ;            src = _AddAdr(gp->hwork.VRAMadr[gp->hwork.page][0],soffs) ;            dst = (DWORD *)dadr ;            if(words>0){                if(dbitp>0){                    *dst = *dst & 0xffff0000 | *src & 0x0000ffff ;                    src++ ;                    dst++ ;                    tx-- ;                }                while(tx>=2){                    *dst++ = *src++ ;                    tx-=2 ;                }            }            if(tx>0){                *dst = *dst & 0x0000ffff | *src & 0xffff0000 ;            }            dadr = _AddAdr(dadr, gp->bitblt.dlbytes) ;            soffs += gp->bitblt.slbytes ;        }    } else {        while(lines-->0){            register DWORD  *src ;            register DWORD  *dst ;            register DWORD  d, o ;            register int    tx ;            tx  = gp->bitblt.tx ;            src = _AddAdr(gp->hwork.VRAMadr[gp->hwork.page][0],soffs) ;            dst = (DWORD *)dadr ;            d = src[0] ;            if(dbitp>0){                *dst = *dst & 0xffff0000 | (d >> 16) ;                dst++ ;                tx-- ;            }            while(tx>=2){                o = src[1] ;                src++ ;                tx -= 2 ;                *dst = (d << 16) | (o>>16) ;                dst++ ;                d = o ;            }            if(tx>1){                *dst = *dst & 0x0000ffff | (d << 16) ;            }            dadr = _AddAdr(dadr, gp->bitblt.dlbytes) ;            soffs += gp->bitblt.slbytes ;        }    }    return GL_Ok ;}

⌨️ 快捷键说明

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