📄 bbg422.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 + -