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

📄 lcdmemc.lst

📁 Keil C下通过的UCGUI,UCGUI的移植源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
                    return;
                WriteTBit7:
                  if (pixels&(1<<0)) SETPIXEL(x+7, y, Index1);
                  if (!--xsize)
                    return;
                  x+=8;
                  pixels = *(++p);
                  goto WriteTBit0;
              
              /*
                      Write without transparency
              */
              #if      (LCD_OPTIMIZE)             \
                    && (!LCD_MIRROR_X)            \
                    && (!LCD_MIRROR_Y)            \
                    && (!LCD_SWAP_XY)             \
                    && (!LCD_SUPPORT_COMTRANS)    \
                    && (!LCD_SUPPORT_SEGTRANS)    \
                    && ((LCD_BITSPERPIXEL == 3) || (LCD_BITSPERPIXEL == 6))
              
                WriteBit0:
                  SetNextPixel((pixels&(1<<7)) ? Index1 : Index0);
                  if (!--xsize) return;
                WriteBit1:
                  SetNextPixel((pixels&(1<<6)) ? Index1 : Index0);
                  if (!--xsize) return;
                WriteBit2:
                  SetNextPixel((pixels&(1<<5)) ? Index1 : Index0);
                  if (!--xsize) return;
                WriteBit3:
                  SetNextPixel((pixels&(1<<4)) ? Index1 : Index0);
                  if (!--xsize) return;
                WriteBit4:
                  SetNextPixel((pixels&(1<<3)) ? Index1 : Index0);
                  if (!--xsize) return;
                WriteBit5:
                  SetNextPixel((pixels&(1<<2)) ? Index1 : Index0);
                  if (!--xsize) return;
                WriteBit6:
                  SetNextPixel((pixels&(1<<1)) ? Index1 : Index0);
C51 COMPILER V8.05a   LCDMEMC                                                              04/11/2008 14:19:25 PAGE 20  

                  if (!--xsize) return;
                WriteBit7:
                  SetNextPixel((pixels&(1<<0)) ? Index1 : Index0);
                  if (!--xsize) return;
                  x+=8;
                  pixels = *(++p);
                  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);
                  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;
C51 COMPILER V8.05a   LCDMEMC                                                              04/11/2008 14:19:25 PAGE 21  

                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) {
                LCD_PIXELINDEX pixels;
              /*
              // Jump to right entry point
              */
                pixels = *p;
                if (GUI_Context.DrawMode & LCD_DRAWMODE_TRANS) {
                  switch (Diff&3) {
                  case 0:
                    goto WriteTBit0;
                  case 1:
                    goto WriteTBit1;
                  case 2:
                    goto WriteTBit2;
                  default:
                    goto WriteTBit3;
                  }
                } else {
                  switch (Diff&3) {
                  case 0:
                    goto WriteBit0;
                  case 1:
C51 COMPILER V8.05a   LCDMEMC                                                              04/11/2008 14:19:25 PAGE 22  

                    goto WriteBit1;
                  case 2:
                    goto WriteBit2;
                  default:
                    goto WriteBit3;
                  }
                }
              /*
                      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;
              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;
              }
              #endif
              
              
              /*
                  *********************************************
                  *                                           *
C51 COMPILER V8.05a   LCDMEMC                                                              04/11/2008 14:19:25 PAGE 23  

                  *      Draw Bitmap 4 BPP                    *
                  *                                           *
                  *********************************************
              */
              
              #if (LCD_MAX_LOG_COLORS > 4)
              static void  DrawBitLine4BPP(int x, int y, U8 const*p, int Diff, int xsize, const LCD_PIXELINDEX*pTrans) {
                LCD_PIXELINDEX pixels;
              /*
              // Jump to right entry point
              */
                pixels = *p;
                 if (GUI_Context.DrawMode & LCD_DRAWMODE_TRANS) {
                   if ((Diff&1) ==0) {
                     goto WriteTBit0;
                   } else {
                      goto WriteTBit1;
                   }
                 } else {
                   if ((Diff&1) ==0) {
                     goto WriteBit0;
                   } else {
                      goto WriteBit1;
                   }
                 }
              /*
                      Write without transparency
              */
              WriteBit0:
                SETPIXEL(x+0, y, *(pTrans+(pixels>>4)));
                if (!--xsize)
                  return;
              WriteBit1:
                SETPIXEL(x+1, y, *(pTrans+(pixels&0xf)));
                if (!--xsize)
                  return;
                x+=2;
                pixels = *(++p);
                goto WriteBit0;
              /*
                      Write with transparency
              */
              WriteTBit0:
                if (pixels>>4)
                  SETPIXEL(x+0, y, *(pTrans+(pixels>>4)));
                if (!--xsize)
                  return;
              WriteTBit1:
                if (pixels&0xf)
                  SETPIXEL(x+1, y, *(pTrans+(pixels&0xf)));
                if (!--xsize)
                  return;
                x+=2;
                pixels = *(++p);
                goto WriteTBit0;
              }
              #endif
              
              
              /*

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -