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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lcdmem.c

?? UC_GUI開發(fā)源代碼,里面含有范例,源文件
?? C
?? 第 1 頁 / 共 3 頁
字號:
  U8 Shift = (8 + (x0 & 7) - (Diff0 & 7));
  U8 Mode = GUI_Context.DrawMode & (LCD_DRAWMODE_TRANS | LCD_DRAWMODE_XOR);
  do {
    U16 PixelData;
    U8 Mask = Mask0;
    U8 Diff = Diff0;
    U8 const GUI_UNI_PTR * p = p0;
    U8 x = (U8)x0;
    int NumBytes = NumBytes0;
    if (NumBytes) {
      /* Output start byte (if multiple bytes are output) */
      PixelData   = (*(p + 1) | ((*p) << 8));
      PixelData >>= Shift;
      if (Mode == 0) {
        if (!COLOR) {
          PixelData ^= 255;
        }
        *pVRam = (*pVRam & ~Mask) | (PixelData & Mask);
      } else if (Mode == LCD_DRAWMODE_TRANS) {
        if (COLOR) {
          *pVRam |= (PixelData & Mask);
        } else {
          *pVRam &= ~(PixelData & Mask);
        }
      } else if (Mode == LCD_DRAWMODE_XOR) {
        *pVRam ^= (PixelData & Mask);
      }
      pVRam++;
      { 
        int DiffOld = Diff;
        Diff += 8 - (x & 7); 
        if ((DiffOld & ~7) != (Diff & ~7)) {
          p++;
        }
      }
      x = 0;
      NumBytes--;
      /* Output complete bytes */
      for (; NumBytes; NumBytes--) {
        PixelData   = (*(p + 1) | ((*p) << 8));
        PixelData >>= (8 - (Diff & 7));
        p++;
        if (Mode == 0) {
          if (!COLOR) {
            PixelData ^= 255;
          }
          *pVRam = PixelData & 255;
        } else if (Mode == LCD_DRAWMODE_TRANS) {
          if (COLOR) {
            *pVRam |= PixelData;
          } else {
            *pVRam &= ~PixelData;
          }
        } else if (Mode == LCD_DRAWMODE_XOR) {
          *pVRam = *pVRam ^ PixelData;
        }
        pVRam++;
      }
      Mask = 0xff;
    }
    PixelData   = (*(p + 1) | ((*p) << 8));
    PixelData >>= (8 + (x & 7) - (Diff & 7));
    Mask &= EndMask;
    if (Mode == 0) {
      if (!COLOR) {
        PixelData ^= 255;
      }
      *pVRam = (*pVRam & ~Mask) | (PixelData & Mask);
    } else if (Mode == LCD_DRAWMODE_TRANS) {
      if (COLOR) {
        *pVRam |= (PixelData & Mask);
      } else {
        *pVRam &= ~(PixelData & Mask);
      }
    } else if (Mode == LCD_DRAWMODE_XOR) {
      *pVRam ^= (PixelData & Mask);
    }
    /* Calculate data for new line */
    p0 += BytesPerLine;
    pVRam0 += LCD_BYTESPERLINE;
    pVRam = pVRam0;
  } while (--ysize);
}

/*********************************************************************
*
*       _DrawBitLine1BPP (not optimized)
*/
#else

#if LCD_ALLOW_NON_OPTIMIZED_MODE == 0
  #error Non-optimized mode. Please select an other mode, define LCD_ALLOW_NON_OPTIMIZED_MODE in LCDCOnf.h or contact info@micrium.com.
#endif

static void  _DrawBitLine1BPP(int x, int y, U8 const GUI_UNI_PTR *p, int Diff, int xsize, const LCD_PIXELINDEX*pTrans) {
  PIXELCOLOR pixels;
  LCD_PIXELINDEX Index0, Index1;
  #if (GUI_USE_MEMDEV_1BPP_FOR_SCREEN == 1)
    const LCD_PIXELINDEX aTrans[2] = {0, 1};
    if (!pTrans) {
      pTrans = aTrans;
    }
  #endif
  Index0 = *(pTrans + 0);
  Index1 = *(pTrans + 1);
/*
   Jump to right entry point
*/
  pixels = *p;
  switch (GUI_Context.DrawMode & (LCD_DRAWMODE_TRANS|LCD_DRAWMODE_XOR)) {
  case 0:
    switch (Diff&7) {
    case 0:   
      goto WriteBit0;
    case 1:   
      goto WriteBit1;
    case 2:
      goto WriteBit2;
    case 3:
      goto WriteBit3;
    case 4:
      goto WriteBit4;
    case 5:   
      goto WriteBit5;
    case 6:   
      goto WriteBit6;
    case 7:   
      goto WriteBit7;
    }
    break;
  case LCD_DRAWMODE_TRANS:
    switch (Diff&7) {
    case 0:
      goto WriteTBit0;
    case 1:
      goto WriteTBit1;
    case 2:
      goto WriteTBit2;
    case 3:
      goto WriteTBit3;
    case 4:
      goto WriteTBit4;
    case 5:   
      goto WriteTBit5;
    case 6:   
      goto WriteTBit6;
    case 7:   
      goto WriteTBit7;
    }
    break;
  case LCD_DRAWMODE_XOR | LCD_DRAWMODE_TRANS:
  case LCD_DRAWMODE_XOR:
    switch (Diff&7) {
    case 0:   
      goto WriteXBit0;
    case 1:   
      goto WriteXBit1;
    case 2:
      goto WriteXBit2;
    case 3:
      goto WriteXBit3;
    case 4:
      goto WriteXBit4;
    case 5:   
      goto WriteXBit5;
    case 6:   
      goto WriteXBit6;
    case 7:   
      goto WriteXBit7;
    }
  }
/*
        Write with transparency
*/
  WriteTBit0:
    if (pixels&(1<<7)) SETPIXEL(x+0, y, Index1);
    if (!--xsize)
      return;
  WriteTBit1:
    if (pixels&(1<<6)) SETPIXEL(x+1, y, Index1);
    if (!--xsize)
      return;
  WriteTBit2:
    if (pixels&(1<<5)) SETPIXEL(x+2, y, Index1);
    if (!--xsize)
      return;
  WriteTBit3:
    if (pixels&(1<<4)) SETPIXEL(x+3, y, Index1);
    if (!--xsize)
      return;
  WriteTBit4:
    if (pixels&(1<<3)) SETPIXEL(x+4, y, Index1);
    if (!--xsize)
      return;
  WriteTBit5:
    if (pixels&(1<<2)) SETPIXEL(x+5, y, Index1);
    if (!--xsize)
      return;
  WriteTBit6:
    if (pixels&(1<<1)) SETPIXEL(x+6, y, Index1);
    if (!--xsize)
      return;
  WriteTBit7:
    if (pixels&(1<<0)) SETPIXEL(x+7, y, Index1);
    if (!--xsize)
      return;
    x+=8;
    pixels = *(++p);
    goto WriteTBit0;

/*
        Write without transparency
*/
  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;
/*
        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;
  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;
}
#endif

/*********************************************************************
*
*       _DrawBitLine2BPP (optimized)
*/
#if (LCD_MAX_LOG_COLORS > 2)

#if  (!LCD_SWAP_XY)

static void  _DrawBitLine2BPP(int x, int y, U8 const GUI_UNI_PTR *p, int Diff, int xsize, const LCD_PIXELINDEX*pTrans) {
  PIXELCOLOR 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:
      goto WriteBit1;
    case 2:
      goto WriteBit2;
    default:
      goto WriteBit3;
    }
  }
/*
        Write without transparency
*/
WriteBit0:
  SETPIXELFAST(x+0, y, *(pTrans+(pixels>>6)));
  if (!--xsize)
    return;
WriteBit1:
  SETPIXELFAST(x+1, y, *(pTrans+(3&(pixels>>4))));
  if (!--xsize)
    return;
WriteBit2:
  SETPIXELFAST(x+2, y, *(pTrans+(3&(pixels>>2))));
  if (!--xsize)
    return;
WriteBit3:
  SETPIXELFAST(x+3, y, *(pTrans+(3&(pixels))));
  if (!--xsize)
    return;
  pixels = *(++p);
  x+=4;
  goto WriteBit0;
/*
        Write with transparency
*/
WriteTBit0:
  if (pixels&(3<<6))
    SETPIXELFAST(x+0, y, *(pTrans+(pixels>>6)));
  if (!--xsize)
    return;
WriteTBit1:
  if (pixels&(3<<4))
    SETPIXELFAST(x+1, y, *(pTrans+(3&(pixels>>4))));
  if (!--xsize)
    return;
WriteTBit2:
  if (pixels&(3<<2))
    SETPIXELFAST(x+2, y, *(pTrans+(3&(pixels>>2))));
  if (!--xsize)
    return;
WriteTBit3:
  if (pixels&(3<<0))
    SETPIXELFAST(x+3, y, *(pTrans+(3&(pixels))));
  if (!--xsize)
    return;
  pixels = *(++p);
  x+=4;
  goto WriteTBit0;
}

#else

/*********************************************************************
*
*       _DrawBitLine2BPP (not optimized)
*/

#if (LCD_BITSPERPIXEL == 2)
  #if LCD_ALLOW_NON_OPTIMIZED_MODE == 0
    #error Non-optimized mode. Please select an other mode, define LCD_ALLOW_NON_OPTIMIZED_MODE in LCDCOnf.h or contact info@micrium.com.
  #endif
#endif

static void  _DrawBitLine2BPP(int x, int y, U8 const GUI_UNI_PTR *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:
    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))

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩三级一区二区| 亚洲一区二区精品3399| 欧美日韩精品欧美日韩精品一| 99久久精品免费观看| a级高清视频欧美日韩| 国产精品免费看片| 色悠悠久久综合| 亚洲第一狼人社区| 日韩天堂在线观看| 国产盗摄女厕一区二区三区| 国产欧美视频一区二区三区| 91视频免费看| 免费久久99精品国产| 久久久蜜臀国产一区二区| 不卡视频在线观看| 五月天亚洲婷婷| 国产亚洲制服色| 91福利视频网站| 久久精品理论片| 亚洲欧洲色图综合| 91麻豆精品国产91久久久资源速度 | 国产精品传媒入口麻豆| 91麻豆免费观看| 男女男精品视频| 久久精品欧美一区二区三区麻豆| 91网页版在线| 免费久久99精品国产| 国产精品免费视频一区| 欧美人伦禁忌dvd放荡欲情| 国产风韵犹存在线视精品| 亚洲国产精品久久久久婷婷884| 日韩欧美国产综合| 色偷偷成人一区二区三区91| 日本中文在线一区| 中文字幕色av一区二区三区| 欧美精品久久久久久久多人混战| 国产剧情在线观看一区二区| 一区二区三区资源| 久久久国产午夜精品| 欧美日韩综合色| 福利91精品一区二区三区| 五月综合激情日本mⅴ| 日韩理论电影院| 欧美日韩一级二级| 日本欧美一区二区三区乱码| 色av一区二区| 久久99精品久久久久久动态图 | 成人国产一区二区三区精品| 91麻豆精品91久久久久同性| 国产精品久久毛片a| 麻豆成人91精品二区三区| 日韩欧美亚洲另类制服综合在线| 一区二区三区精品久久久| 欧美无砖砖区免费| 久久久综合激的五月天| 欧美日韩第一区日日骚| 成人福利视频网站| 国产在线一区观看| 日韩av高清在线观看| 亚洲午夜电影网| 一区在线观看免费| 国产精品网曝门| 中国色在线观看另类| 日韩欧美一卡二卡| 欧美精品一二三| 欧美亚洲愉拍一区二区| 在线中文字幕一区| 91国内精品野花午夜精品| 91在线国产福利| 成人免费视频视频在线观看免费 | 日本中文字幕一区| 日韩精彩视频在线观看| 五月婷婷综合激情| 人人精品人人爱| 美女精品自拍一二三四| 裸体歌舞表演一区二区| 午夜精品久久久久久久| 香港成人在线视频| 日本不卡视频一二三区| 奇米777欧美一区二区| 日韩电影在线免费观看| 日本不卡高清视频| 久久成人免费网站| 九九热在线视频观看这里只有精品| 久久成人免费日本黄色| 国产福利一区二区| 成熟亚洲日本毛茸茸凸凹| 成人毛片视频在线观看| av网站一区二区三区| 91久久奴性调教| 日韩一区二区在线观看| 国产亚洲自拍一区| 亚洲欧美日韩国产综合在线| 亚洲尤物在线视频观看| 奇米影视一区二区三区| 国产麻豆9l精品三级站| 91免费版在线看| 欧美高清dvd| 久久久久久久久久久黄色 | 国产精品毛片大码女人| 国产福利一区二区三区视频在线| 国产91高潮流白浆在线麻豆| 蜜桃久久精品一区二区| 亚洲福利一二三区| 婷婷久久综合九色综合伊人色| 亚洲无线码一区二区三区| 国产精品嫩草99a| 亚洲免费观看在线视频| 亚洲自拍与偷拍| 日本成人中文字幕在线视频| 国产凹凸在线观看一区二区| 欧美性生活一区| 欧美日韩高清一区| 精品国产免费久久| 亚洲欧美激情一区二区| 日韩中文字幕一区二区三区| 国产一区二区三区最好精华液| 一本到高清视频免费精品| 91精品国产乱码| 中文字幕一区二区视频| 免费xxxx性欧美18vr| 成人app下载| 日韩精品一区在线| 一区二区三区在线视频免费| 国产综合久久久久久久久久久久| 91精品1区2区| 日本一区二区电影| 久久精品国产99国产| 色婷婷精品久久二区二区蜜臂av| 日韩欧美色电影| 亚洲一区精品在线| 成人激情小说网站| 欧美成人伊人久久综合网| 一区二区三区中文字幕精品精品| 国产成人午夜精品影院观看视频| 欧美日韩一区不卡| 日韩毛片在线免费观看| 国产成人午夜片在线观看高清观看| 欧美丰满少妇xxxbbb| 一区二区在线观看av| 高清视频一区二区| 精品国产乱码久久久久久牛牛| 亚洲风情在线资源站| 一本久道中文字幕精品亚洲嫩| 国产午夜一区二区三区| 蜜桃一区二区三区在线| 欧美日韩在线综合| 一区二区三区影院| 91在线观看视频| 中文字幕不卡在线观看| 国产一区二区三区观看| 欧美成人在线直播| 久久97超碰国产精品超碰| 在线不卡一区二区| 午夜成人免费电影| 在线播放视频一区| 日韩国产欧美在线播放| 欧美日韩一区三区| 日日摸夜夜添夜夜添精品视频| 在线精品亚洲一区二区不卡| 亚洲免费观看在线视频| 91网站最新地址| 亚洲一区二区偷拍精品| 91黄色免费网站| 亚洲国产一区二区视频| 欧美午夜影院一区| 亚州成人在线电影| 日韩一区二区三区高清免费看看| 日韩在线一区二区| 欧美一级电影网站| 国产在线视频一区二区| 蜜桃免费网站一区二区三区| 久久九九久精品国产免费直播| 91亚洲大成网污www| 亚洲国产中文字幕| 国产欧美精品一区二区色综合朱莉| 91小视频在线免费看| 在线影院国内精品| 美女脱光内衣内裤视频久久网站 | 国产成a人亚洲精| 亚洲夂夂婷婷色拍ww47| 日本欧美韩国一区三区| 欧美tickle裸体挠脚心vk| 国产主播一区二区三区| 国产午夜精品久久| av中文字幕一区| 偷拍与自拍一区| 日韩你懂的在线播放| 国产一区啦啦啦在线观看| 国产精品色一区二区三区| 91麻豆高清视频| 香蕉成人伊视频在线观看| 精品美女一区二区| 成人高清av在线| 午夜精品aaa| 国产亚洲人成网站| 色偷偷久久人人79超碰人人澡| 丝袜亚洲另类欧美| 久久久久久久久免费| 色哟哟精品一区|