📄 lcd07x1.lst
字号:
goto WriteBit0;
#else
WriteBit0:
SETPIXEL(x+0, y, (pixels&(1<<7)) ? Index1 : Index0);
if (!--xsize)
return;
WriteBit1:
SETPIXEL(x+1, y, (pixels&(1<<6)) ? Index1 : Index0);
if (!--xsize)
return;
WriteBit2:
SETPIXEL(x+2, y, (pixels&(1<<5)) ? Index1 : Index0);
if (!--xsize)
return;
WriteBit3:
SETPIXEL(x+3, y, (pixels&(1<<4)) ? Index1 : Index0);
if (!--xsize)
return;
WriteBit4:
SETPIXEL(x+4, y, (pixels&(1<<3)) ? Index1 : Index0);
if (!--xsize)
return;
WriteBit5:
SETPIXEL(x+5, y, (pixels&(1<<2)) ? Index1 : Index0);
if (!--xsize)
return;
WriteBit6:
SETPIXEL(x+6, y, (pixels&(1<<1)) ? Index1 : Index0);
if (!--xsize)
return;
WriteBit7:
SETPIXEL(x+7, y, (pixels&(1<<0)) ? Index1 : Index0);
if (!--xsize)
return;
x+=8;
pixels = *(++p);
goto WriteBit0;
#endif
/*
Write XOR mode
*/
WriteXBit0:
if (pixels&(1<<7))
XORPIXEL(x+0, y);
C51 COMPILER V8.05a LCD07X1 04/11/2008 14:19:22 PAGE 20
if (!--xsize)
return;
WriteXBit1:
if (pixels&(1<<6))
XORPIXEL(x+1, y);
if (!--xsize)
return;
WriteXBit2:
if (pixels&(1<<5))
XORPIXEL(x+2, y);
if (!--xsize)
return;
WriteXBit3:
if (pixels&(1<<4))
XORPIXEL(x+3, y);
if (!--xsize)
return;
WriteXBit4:
if (pixels&(1<<3))
XORPIXEL(x+4, y);
if (!--xsize)
return;
WriteXBit5:
if (pixels&(1<<2))
XORPIXEL(x+5, y);
if (!--xsize)
return;
WriteXBit6:
if (pixels&(1<<1))
XORPIXEL(x+6, y);
if (!--xsize)
return;
WriteXBit7:
if (pixels&(1<<0))
XORPIXEL(x+7, y);
if (!--xsize)
return;
x+=8;
pixels = *(++p);
goto WriteXBit0;
}
/*
*********************************************************
* *
* Draw Bitmap 2 BPP *
* *
*********************************************************
*/
#if (LCD_MAX_LOG_COLORS > 2)
static void DrawBitLine2BPP(int x, int y, U8 const*p, int Diff, int xsize, const LCD_PIXELINDEX*pTrans) {
PIXELCOLOR pixels;
/*
Jump to right entry point
*/
pixels = *p;
if (pTrans) {
/*
with palette
C51 COMPILER V8.05a LCD07X1 04/11/2008 14:19:22 PAGE 21
*/
switch (LCD_DrawMode & (LCD_DRAWMODE_TRANS|LCD_DRAWMODE_XOR)) {
case 0:
switch (Diff&3) {
case 0:
goto WriteBit0;
case 1:
goto WriteBit1;
case 2:
goto WriteBit2;
default:
goto WriteBit3;
}
case LCD_DRAWMODE_TRANS:
switch (Diff&3) {
case 0:
goto WriteTBit0;
case 1:
goto WriteTBit1;
case 2:
goto WriteTBit2;
default:
goto WriteTBit3;
}
case LCD_DRAWMODE_XOR:
switch (Diff&3) {
case 0:
goto WriteXBit0;
case 1:
goto WriteXBit1;
case 2:
goto WriteXBit2;
default:
goto WriteXBit3;
}
case LCD_DRAWMODE_TRANS|LCD_DRAWMODE_XOR:
switch (Diff&3) {
case 0:
goto WriteTXBit0;
case 1:
goto WriteTXBit1;
case 2:
goto WriteTXBit2;
default:
goto WriteTXBit3;
}
}
/*
Write without transparency
*/
WriteBit0:
SETPIXEL(x+0, y, *(pTrans+(pixels>>6)));
if (!--xsize)
return;
WriteBit1:
SETPIXEL(x+1, y, *(pTrans+(3&(pixels>>4))));
if (!--xsize)
return;
WriteBit2:
SETPIXEL(x+2, y, *(pTrans+(3&(pixels>>2))));
if (!--xsize)
return;
C51 COMPILER V8.05a LCD07X1 04/11/2008 14:19:22 PAGE 22
WriteBit3:
SETPIXEL(x+3, y, *(pTrans+(3&(pixels))));
if (!--xsize)
return;
pixels = *(++p);
x+=4;
goto WriteBit0;
/*
Write with transparency
*/
WriteTBit0:
if (pixels&(3<<6))
SETPIXEL(x+0, y, *(pTrans+(pixels>>6)));
if (!--xsize)
return;
WriteTBit1:
if (pixels&(3<<4))
SETPIXEL(x+1, y, *(pTrans+(3&(pixels>>4))));
if (!--xsize)
return;
WriteTBit2:
if (pixels&(3<<2))
SETPIXEL(x+2, y, *(pTrans+(3&(pixels>>2))));
if (!--xsize)
return;
WriteTBit3:
if (pixels&(3<<0))
SETPIXEL(x+3, y, *(pTrans+(3&(pixels))));
if (!--xsize)
return;
pixels = *(++p);
x+=4;
goto WriteTBit0;
/*
Write without transparency, xor
*/
WriteXBit0:
XORPIXEL_DATA(x+0, y, *(pTrans+(pixels>>6)));
if (!--xsize)
return;
WriteXBit1:
XORPIXEL_DATA(x+1, y, *(pTrans+(3&(pixels>>4))));
if (!--xsize)
return;
WriteXBit2:
XORPIXEL_DATA(x+2, y, *(pTrans+(3&(pixels>>2))));
if (!--xsize)
return;
WriteXBit3:
XORPIXEL_DATA(x+3, y, *(pTrans+(3&(pixels))));
if (!--xsize)
return;
pixels = *(++p);
x+=4;
goto WriteXBit0;
/*
Write with transparency, xor
*/
WriteTXBit0:
if (pixels&(3<<6))
XORPIXEL_DATA(x+0, y, *(pTrans+(pixels>>6)));
if (!--xsize)
C51 COMPILER V8.05a LCD07X1 04/11/2008 14:19:22 PAGE 23
return;
WriteTXBit1:
if (pixels&(3<<4))
XORPIXEL_DATA(x+1, y, *(pTrans+(3&(pixels>>4))));
if (!--xsize)
return;
WriteTXBit2:
if (pixels&(3<<2))
XORPIXEL_DATA(x+2, y, *(pTrans+(3&(pixels>>2))));
if (!--xsize)
return;
WriteTXBit3:
if (pixels&(3<<0))
XORPIXEL_DATA(x+3, y, *(pTrans+(3&(pixels))));
if (!--xsize)
return;
pixels = *(++p);
x+=4;
goto WriteTXBit0;
} else {
/*
without palette
*/
switch (LCD_DrawMode & (LCD_DRAWMODE_TRANS|LCD_DRAWMODE_XOR)) {
case 0:
switch (Diff&3) {
case 0:
goto WriteDDPBit0;
case 1:
goto WriteDDPBit1;
case 2:
goto WriteDDPBit2;
default:
goto WriteDDPBit3;
}
case LCD_DRAWMODE_TRANS:
switch (Diff&3) {
case 0:
goto WriteDDPTBit0;
case 1:
goto WriteDDPTBit1;
case 2:
goto WriteDDPTBit2;
default:
goto WriteDDPTBit3;
}
case LCD_DRAWMODE_XOR:
switch (Diff&3) {
case 0:
goto WriteDDPXBit0;
case 1:
goto WriteDDPXBit1;
case 2:
goto WriteDDPXBit2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -