textblt.h
来自「深圳市微逻辑电子有限公司 巨果• Kingmos® 系统核心」· C头文件 代码 · 共 62 行
H
62 行
#ifndef FUNCTION
#error not define FUNCTION!
#endif
#ifndef BLT_ROP
#error not define BLT_ROP
#endif
static BOOL FUNCTION( _LPBLKBITBLT lpData )
//BOOL _TextBitBlt( _LPBLKBITBLT lpData )
{
LPWORD lpDestStart, lpDest;
LPCBYTE lpMaskStart, lpMask;
WORD clFore, clBack;
int i, j, rows, cols, shift;
//BOOL bEraseBack = (lpData->backMode == OPAQUE);
BYTE mask, bitMask;
lpDestStart = (LPWORD)(lpData->lpDestImage->bmBits + lpData->lprcDest->top * lpData->lpDestImage->bmWidthBytes) + lpData->lprcDest->left;
// lpMaskStart = lpData->lpMaskImage->bmBits + lpData->lprcMask->top * lpData->lpMaskImage->bmWidthBytes + (lpData->lprcMask->left >> 3);
lpMaskStart = lpData->lpSrcImage->bmBits + lpData->lprcSrc->top * lpData->lpSrcImage->bmWidthBytes + (lpData->lprcSrc->left >> 3);
rows = lpData->lprcDest->bottom - lpData->lprcDest->top;
cols = lpData->lprcDest->right - lpData->lprcDest->left;
// shift = lpData->lprcMask->left & 0x07;
shift = lpData->lprcSrc->left & 0x07;
clFore = (WORD)lpData->solidColor;
clBack = (WORD)lpData->solidBkColor;
for( i = 0; i < rows; i++ )
{
lpDest = lpDestStart;
lpMask = lpMaskStart;
mask = *lpMask++;
bitMask = 0x80 >> shift;
for( j = 0; j < cols; j++ )
{
if( bitMask == 0 )
{
mask = *lpMask++;
bitMask = 0x80;
}
if( mask & bitMask )
{
*lpDest = BLT_ROP( *lpDest, (WORD)clFore );
}
else// if( bEraseBack )
{
*lpDest = BLT_ROP( *lpDest, (WORD)clBack );
}
lpDest++;
bitMask >>= 1;
}
lpDestStart = (LPWORD)( (LPBYTE)lpDestStart + lpData->lpDestImage->bmWidthBytes );
// lpMaskStart += lpData->lpMaskImage->bmWidthBytes;
lpMaskStart += lpData->lpSrcImage->bmWidthBytes;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?