亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lcdlin32.c

?? UC_GUI開發源代碼,里面含有范例,源文件
?? C
?? 第 1 頁 / 共 5 頁
字號:
        }
      } while (--xsize);
    } else {
      do {
        int Shift = (1 - CurrentPixel) << 2;
        int Index = (Pixels & (0xF0 >> (4 - Shift))) >> Shift;
        if (Index) {
          LCD_L0_SetPixelIndex(x, y, Index);
        }
        x++;
        if (++CurrentPixel == 2) {
          CurrentPixel = 0;
          Pixels = *(++p);
        }
      } while (--xsize);
    }
    break;
  }
}
#endif
#endif /* (LCD_MAX_LOG_COLORS > 4) */

/*********************************************************************
*
*       Draw Bitmap 8 BPP, optimized for LCD_ENDIAN_BIG == 0, LCD_BITSPERPIXEL == 8
*/
#if (LCD_MAX_LOG_COLORS > 16)
#if (LCD_ENDIAN_BIG == 0) && \
    (LCD_BITSPERPIXEL == 8) && \
    (!LCD_MIRROR_X) && \
    (!LCD_MIRROR_Y) && \
    (!LCD_SWAP_XY)
static void  _DrawBitLine8BPP(int x, int y, U8 const GUI_UNI_PTR * p, int xsize, const LCD_PIXELINDEX * pTrans) {
  if ((GUI_Context.DrawMode & LCD_DRAWMODE_TRANS) == 0) {
    U32 Data, ColorMask, AndMask;
    int Off, NumPixel_0, NumPixel_1, i;
    Off = y * DWORDS_PER_LINE + x / PIXELS_PER_DWORD;
    NumPixel_0 = x & (PIXELS_PER_DWORD - 1);
    NumPixel_1 = (x + xsize - 1) & (PIXELS_PER_DWORD - 1);
    if (pTrans) {
      /* First DWORD */
      if (NumPixel_0) {
        ColorMask = 0;
        AndMask = ~(0xFFFFFFFF << (8 * NumPixel_0));
        if ((xsize < 3) && (NumPixel_1)) {
          AndMask |= ~(0xFFFFFFFF >> (8 * (3 - NumPixel_1)));
        }
        for (i = NumPixel_0; (i < 4) && xsize; i++, xsize--) {
          U8 Index = *(pTrans + *p++);
          ColorMask |= Index << (8 * i);
        }
        Data = READ_MEM(Off);
        Data &= AndMask;
        Data |= ColorMask;
        WRITE_MEM(Off, Data);
        Off++;
      }
      /* Complete DWORDS */
      while (xsize >= 4) {
        ColorMask =  *(pTrans + *p) | 
                    (*(pTrans + *(p + 1)) << 8) | 
                    (*(pTrans + *(p + 2)) << 16) | 
                    (*(pTrans + *(p + 3)) << 24);
        WRITE_MEM(Off, ColorMask);
        p += 4;
        Off++;
        xsize -= 4;
      }
      /* Last DWORD */
      if (xsize) {
        ColorMask = i = 0;
        AndMask = 0xFFFFFF00 << (8 * NumPixel_1);
        while (xsize) {
          U8 Index = *(pTrans + *p++);
          ColorMask |= Index << (8 * i++);
          xsize--;
        }
        Data = READ_MEM(Off);
        Data &= AndMask;
        Data |= ColorMask;
        WRITE_MEM(Off, Data);
      }
    } else {
      /* First DWORD */
      if (NumPixel_0) {
        ColorMask = 0;
        AndMask = ~(0xFFFFFFFF << (8 * NumPixel_0));
        if ((xsize < 3) && (NumPixel_1)) {
          AndMask |= ~(0xFFFFFFFF >> (8 * (3 - NumPixel_1)));
        }
        for (i = NumPixel_0; (i < 4) && xsize; i++, xsize--) {
          U8 Index = *(p++);
          ColorMask |= Index << (8 * i);
        }
        Data = READ_MEM(Off);
        Data &= AndMask;
        Data |= ColorMask;
        WRITE_MEM(Off, Data);
        Off++;
      }
      /* Complete DWORDS */
      while (xsize >= 4) {
        ColorMask =  *(p) | 
                    (*(p + 1) << 8) | 
                    (*(p + 2) << 16) | 
                    (*(p + 3) << 24);
        WRITE_MEM(Off, ColorMask);
        p += 4;
        Off++;
        xsize -= 4;
      }
      /* Last DWORD */
      if (xsize) {
        ColorMask = i = 0;
        AndMask = 0xFFFFFF00 << (8 * NumPixel_1);
        while (xsize) {
          U8 Index = *(p++);
          ColorMask |= Index << (8 * i++);
          xsize--;
        }
        Data = READ_MEM(Off);
        Data &= AndMask;
        Data |= ColorMask;
        WRITE_MEM(Off, Data);
      }
    }
  } else {
    /* Handle transparent bitmap with palette */
    LCD_PIXELINDEX pixel;
    if (pTrans) {
      while (xsize > 0) {
        pixel = *p;
        if (pixel != 0) {
          LCD_L0_SetPixelIndex(x + 0, y, *(pTrans + pixel));
        }
        xsize--;
        x++;
        p++;
      }
    /* Handle transparent bitmap without palette */
    } else {
      while (xsize > 0) {
        pixel = *p;
        if (pixel != 0) {
          LCD_L0_SetPixelIndex(x + 0, y, pixel);
        }
        xsize--;
        x++;
        p++;
      }
    }
  }
}

/*********************************************************************
*
*       Draw Bitmap 8 BPP, optimized for LCD_ENDIAN_BIG == 0, LCD_BITSPERPIXEL == 8, LCD_SWAP_XY == 1
*/
#elif (LCD_ENDIAN_BIG == 0) && \
    (LCD_BITSPERPIXEL == 8) && \
    (LCD_MIRROR_X) && \
    (LCD_SWAP_XY)
static void _DrawBitLine8BPP_Swap(unsigned x, unsigned y, U8 const GUI_UNI_PTR * pData, int ysize, const U8 * pTrans, int BytesPerLine, U8 Pos) {
  unsigned x0, y0, Off, xOdd;
  U32 Data;
  U8 Pixel, BufferValid, Shift, Index;
  #if LCD_MIRROR_Y
    y0 = LCD_XSIZE - x - 1;
  #else
    y0 = x;
  #endif
  x0 = LCD_YSIZE - y - 1;
  Off = XY2OFF(x0, y0);
  BufferValid = 0;
  xOdd = x0 & 0x3;
  if ((GUI_Context.DrawMode & LCD_DRAWMODE_TRANS) == 0) {
    /* Handle non transparent bitmaps */
    if (pTrans) {
      /* First DWORD */
      if (xOdd < 3) {
        Data = READ_MEM(Off);
        do {
          Shift = xOdd << 3;
          Pixel = *(pTrans + *pData);
          pData += BytesPerLine;
          Data &= ~(0xff << Shift);
          Data |= Pixel << Shift;
          if (!--ysize) {
            break;
          }
          x0--;
        } while (xOdd--);
        WRITE_MEM(Off, Data);
        Off--;
      }
      /* Complete DWORDS */
      while (ysize >= 4) {
        Data  = (*(pTrans + *pData)) << 24;
        pData += BytesPerLine;
        Data |= (*(pTrans + *pData)) << 16;
        pData += BytesPerLine;
        Data |= (*(pTrans + *pData)) << 8;
        pData += BytesPerLine;
        Data |= *(pTrans + *pData);
        pData += BytesPerLine;
        WRITE_MEM(Off, Data);
        ysize -= 4;
        x0 -= 4;
        Off--;
      }
      /* Last DWORD */
      if (ysize) {
        Data = READ_MEM(Off);
        Data &= ~0xff000000;
        Data |= (*(pTrans + *pData)) << 24;
        if (ysize > 1) {
          pData += BytesPerLine;
          Data &= ~0xff0000;
          Data |= (*(pTrans + *pData)) << 16;
          if (ysize > 2) {
            pData += BytesPerLine;
            Data &= ~0xff00;
            Data |= (*(pTrans + *pData)) << 8;
          }
        }
        WRITE_MEM(Off, Data);
      }
    } else {
      /* First DWORD */
      if (xOdd < 3) {
        Data = READ_MEM(Off);
        do {
          Shift = xOdd << 3;
          Pixel = *pData;
          pData += BytesPerLine;
          Data &= ~(0xff << Shift);
          Data |= Pixel << Shift;
          if (!--ysize) {
            break;
          }
          x0--;
        } while (xOdd--);
        WRITE_MEM(Off, Data);
        Off--;
      }
      /* Complete DWORDS */
      while (ysize >= 4) {
        Data  = (*pData) << 24;
        pData += BytesPerLine;
        Data |= (*pData) << 16;
        pData += BytesPerLine;
        Data |= (*pData) << 8;
        pData += BytesPerLine;
        Data |= *pData;
        pData += BytesPerLine;
        WRITE_MEM(Off, Data);
        ysize -= 4;
        x0 -= 4;
        Off--;
      }
      /* Last DWORD */
      if (ysize) {
        Data = READ_MEM(Off);
        Data &= ~0xff000000;
        Data |= (*pData) << 24;
        if (ysize > 1) {
          pData += BytesPerLine;
          Data &= ~0xff0000;
          Data |= (*pData) << 16;
          if (ysize > 2) {
            pData += BytesPerLine;
            Data &= ~0xff00;
            Data |= (*pData) << 8;
          }
        }
        WRITE_MEM(Off, Data);
      }
    }
  } else {
    /* Handle transparent bitmaps */
    if (pTrans) {
      /* First DWORD */
      if (xOdd < 3) {
        Data = READ_MEM(Off);
        do {
          Shift = xOdd << 3;
          Index = *pData;
          pData += BytesPerLine;
          if (Index) {
            Pixel = *(pTrans + Index);
            Data &= ~(0xff << Shift);
            Data |= Pixel << Shift;
          }
          if (!--ysize) {
            break;
          }
          x0--;
        } while (xOdd--);
        WRITE_MEM(Off, Data);
        Off--;
      }
      /* Complete DWORDS */
      while (ysize >= 4) {
        Data = READ_MEM(Off);
        Index = *pData;
        pData += BytesPerLine;
        if (Index) {
          Data &= ~(0xff << 24);
          Data |= (*(pTrans + Index)) << 24;
        }
        Index = *pData;
        pData += BytesPerLine;
        if (Index) {
          Data &= ~(0xff << 16);
          Data |= (*(pTrans + Index)) << 16;
        }
        Index = *pData;
        pData += BytesPerLine;
        if (Index) {
          Data &= ~(0xff << 8);
          Data |= (*(pTrans + Index)) << 8;
        }
        Index = *pData;
        pData += BytesPerLine;
        if (Index) {
          Data &= ~(0xff);
          Data |= (*(pTrans + Index));
        }
        WRITE_MEM(Off, Data);
        ysize -= 4;
        x0 -= 4;
        Off--;
      }
      /* Last DWORD */
      if (ysize) {
        Data = READ_MEM(Off);
        Index = *pData;
        if (Index) {
          Data &= ~0xff000000;
          Data |= (*(pTrans + Index)) << 24;
        }
        if (ysize > 1) {
          pData += BytesPerLine;
          Index = *pData;
          if (Index) {
            Data &= ~0xff0000;
            Data |= (*(pTrans + Index)) << 16;
          }
          if (ysize > 2) {
            pData += BytesPerLine;
            Index = *pData;
            if (Index) {
              Data &= ~0xff00;
              Data |= (*(pTrans + Index)) << 8;
            }
          }
        }
        WRITE_MEM(Off, Data);
      }
    } else {
      /* First DWORD */
      if (xOdd < 3) {
        Data = READ_MEM(Off);
        do {
          Shift = xOdd << 3;
          Index = *pData;
          pData += BytesPerLine;
          if (Index) {
            Data &= ~(0xff << Shift);
            Data |= Index << Shift;
          }
          if (!--ysize) {
            break;
          }
          x0--;
        } while (xOdd--);
        WRITE_MEM(Off, Data);
        Off--;
      }
      /* Complete DWORDS */
      while (ysize >= 4) {
        Data = READ_MEM(Off);
        Index = *pData;
        pData += BytesPerLine;
        if (Index) {
          Data &= ~(0xff << 24);
          Data |= Index << 24;
        }
        Index = *pData;
        pData += BytesPerLine;
        if (Index) {
          Data &= ~(0xff << 16);
          Data |= Index << 16;
        }
        Index = *pData;
        pData += BytesPerLine;
        if (Index) {
          Data &= ~(0xff << 8);
          Data |= Index << 8;
        }
        Index = *pData;
        pData += BytesPerLine;
        if (Index) {
          Data &= ~(0xff);
          Data |= Index;
        }
        WRITE_MEM(Off, Data);
        ysize -= 4;
        x0 -= 4;
        Off--;
      }
      /* Last DWORD */
      if (ysize) {
        Data = READ_MEM(Off);
        Index = *pData;
        if (Index) {
          Data &= ~0xff000000;
          Data |= Index << 24;
        }
        if (ysize > 1) {
          pData += BytesPerLine;
          Index = *pData;
          if (Index) {
            Data &= ~0xff0000;
            Data |= Index << 16;
          }
          if (ysize > 2) {
            pData += BytesPerLine;
            Index = *pData;
            if (Index) {
              Data &= ~0xff00;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
有码一区二区三区| 午夜欧美在线一二页| 国产精品久久久久久久久晋中| 一区二区三区在线免费视频| 人人精品人人爱| 91免费看片在线观看| 精品国产髙清在线看国产毛片| 一区二区三区日韩精品视频| 成人一区二区三区| 欧美疯狂性受xxxxx喷水图片| 中文字幕日韩av资源站| 国产综合色精品一区二区三区| 欧美日韩国产影片| 国产精品久久久爽爽爽麻豆色哟哟| 日本欧美一区二区在线观看| 91精品1区2区| 中文字幕在线观看一区| 国产自产视频一区二区三区| 日韩一区二区在线看| 蜜臀久久99精品久久久久久9| 成人永久aaa| 亚洲精品一区二区三区99| 亚洲精品国产无天堂网2021| 成人动漫视频在线| 久久久亚洲精品一区二区三区| 青青草成人在线观看| 337p亚洲精品色噜噜狠狠| 亚洲伊人伊色伊影伊综合网| 在线这里只有精品| 国产精品免费免费| 国产成人精品三级| 精品国产1区二区| 久久超碰97中文字幕| 这里是久久伊人| 一区二区三区丝袜| 国产a视频精品免费观看| 日本一区二区三区国色天香| 大尺度一区二区| 国产欧美综合色| 丁香天五香天堂综合| 欧美日韩免费视频| 极品少妇xxxx偷拍精品少妇| 日韩视频一区在线观看| 人人超碰91尤物精品国产| 欧美男男青年gay1069videost| 一区二区三区精密机械公司| 在线观看欧美精品| 一区二区三区加勒比av| 欧美视频你懂的| 麻豆国产91在线播放| 欧美一卡二卡三卡| 国内精品嫩模私拍在线| 国产片一区二区| 色8久久精品久久久久久蜜 | 色综合久久综合网97色综合| 亚洲视频免费在线观看| 欧洲一区二区av| 免费在线观看一区| 久久久噜噜噜久噜久久综合| 99国产精品国产精品久久| 亚洲国产精品尤物yw在线观看| 日韩精品一区二区三区老鸭窝| 国产iv一区二区三区| 亚洲一区中文日韩| 日韩女优av电影在线观看| 成人小视频免费在线观看| 一区二区三区自拍| 欧美va天堂va视频va在线| av色综合久久天堂av综合| 丝袜诱惑亚洲看片| 国产日产亚洲精品系列| 色欧美片视频在线观看| 久久99九九99精品| 亚洲精品乱码久久久久久日本蜜臀| 日韩一区二区在线观看| aaa欧美大片| 美国av一区二区| 一区二区三区视频在线观看| 久久看人人爽人人| 欧美日韩激情一区二区三区| 不卡av在线网| 老司机精品视频导航| 亚洲欧美一区二区三区极速播放| 日韩三区在线观看| 99久久精品情趣| 国产在线精品一区二区不卡了| 亚洲bt欧美bt精品| 国产精品情趣视频| 欧美成人aa大片| 欧美在线制服丝袜| 国产99久久久久| 久久99精品视频| 日韩高清在线一区| 亚洲乱码中文字幕| 国产欧美中文在线| 精品少妇一区二区三区在线播放| 欧美精品久久天天躁| 91蜜桃视频在线| 大陆成人av片| 国产91精品入口| 国产精品一品二品| 日本欧美一区二区| 午夜伦理一区二区| 一区二区视频免费在线观看| 亚洲人吸女人奶水| 2023国产精华国产精品| 日韩欧美一区二区三区在线| 制服丝袜亚洲色图| 欧美日韩成人高清| 欧美四级电影网| 欧美日韩一区在线观看| 日本道色综合久久| 一本久久a久久精品亚洲| 99精品热视频| 91电影在线观看| 欧美视频第二页| 欧美日韩高清一区二区不卡| 欧美性大战久久久久久久蜜臀| 色呦呦一区二区三区| 99久久精品久久久久久清纯| aaa亚洲精品一二三区| 99精品国产热久久91蜜凸| 91免费国产视频网站| 99精品视频中文字幕| 色国产综合视频| 欧美日本一道本| 欧美一区永久视频免费观看| 日韩一区二区高清| 精品日韩欧美在线| 国产亚洲一区二区三区四区| 中文一区一区三区高中清不卡| 中文字幕乱码日本亚洲一区二区 | 亚洲三级电影网站| 亚洲免费在线看| 天天综合网 天天综合色| 日韩av一区二区在线影视| 蜜臀av性久久久久蜜臀aⅴ流畅| 精彩视频一区二区| 国产成人亚洲综合a∨婷婷| 成人少妇影院yyyy| 欧美性生活久久| 亚洲精品中文在线| 玉足女爽爽91| 国内成+人亚洲+欧美+综合在线| 99国内精品久久| 在线免费视频一区二区| 欧美一级片在线观看| 国产欧美日韩一区二区三区在线观看| 亚洲精品国产成人久久av盗摄| 日韩经典一区二区| 国产成人精品免费看| 欧美亚洲国产一区二区三区| 欧美精品一区二区三| 中文字幕在线不卡| 日韩高清中文字幕一区| 成人不卡免费av| 欧美一区二区三区视频| 国产精品女同一区二区三区| 日韩精品视频网站| 国产福利91精品一区二区三区| 欧美日韩国产精选| 国产欧美一区二区三区沐欲| 午夜精品福利一区二区三区av | xvideos.蜜桃一区二区| 亚洲品质自拍视频| 精彩视频一区二区| 欧美性猛交xxxx黑人交 | 91精品国产91久久久久久最新毛片| 欧美国产亚洲另类动漫| 日韩精品国产精品| 99久久久精品| 国产欧美日韩综合| 日韩成人av影视| 91久久国产综合久久| 欧美激情一区二区三区不卡| 久国产精品韩国三级视频| 91国产免费观看| 国产日韩欧美综合一区| 日韩精品五月天| 欧美日本一道本| 一区二区三区91| 99久久久无码国产精品| 久久精品视频在线看| 看片的网站亚洲| 欧美一区二区三区日韩视频| 亚洲福利一区二区| www.色综合.com| 国产精品久久久久久久久久免费看| 国产麻豆日韩欧美久久| 欧美一区二区国产| 亚洲成av人影院| 欧美日韩一区中文字幕| 亚洲老司机在线| 91久久一区二区| 亚洲黄色av一区| 欧美中文字幕一区二区三区| 玉足女爽爽91| 欧美视频你懂的| 日本一不卡视频| 欧美v日韩v国产v|