📄 bbs888.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 BitLen 24int_GL_bbsetRGB888(GL_WP *gp) { int dbitp,words,lines, ii ; DWORD dmask_head, dmask_tail, color[3]; BYTE *dadr ;/* color rotation (1)RGBR, dbitp=0 (2)GBRG, dbitp=16 (3)BRGB, dbitp=8*/ { DWORD c = gp->bitblt.color & 0x00ffffff ; color[0] = (c<< 8)|(c>>16) ; color[1] = (c<<16)|(c>>8) ; color[2] = (c<<24)|(c>>0) ; } dbitp = gp->bitblt.dbitp ; lines = gp->bitblt.ty ; dadr = _AddAdr(gp->hwork.VRAMadr[gp->hwork.page][0],gp->bitblt.doffs) ; AdjAccAdr32(dadr,dbitp) ; dmask_head = (DWORD)-1>>dbitp ; words = (int)gp->bitblt.tx * BitLen + dbitp ; dmask_tail = ~((DWORD)-1L >> (words&31)) ; words >>= 5 ; if(words==0){ dmask_head &= dmask_tail ; dmask_tail = 0 ; } else words-- ; ii = 0 ; switch(dbitp){ case 16: ii = 1 ; break ; case 8: ii = 2 ; break ; } while(lines--){ register DWORD *dst ; register int i, n ; dst = (DWORD *)dadr ; i = ii ; *dst++ = *dst & ~dmask_head | color[i++] & dmask_head ; if(i==3) i = 0 ; n = words ; while(n--){ *dst++ = color[i++] ; if(i==3) i = 0 ; } if(dmask_tail) *dst = *dst & ~dmask_tail | color[i] & dmask_tail ; dadr += gp->bitblt.dlbytes ; } return GL_Ok ;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -