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

📄 lcd07x1.lst

📁 Keil C下通过的UCGUI,UCGUI的移植源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
                  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 + -