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

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

?? lcdlin32.c

?? UC_GUI開發(fā)源代碼,里面含有范例,源文件
?? C
?? 第 1 頁 / 共 5 頁
字號(hào):
        if (++Diff == 8) {
          Diff = 0;
          p++;
        }
      } while (--xsize);
      break;
    }
  }
}

/*********************************************************************
*
*       Draw Bitmap 1 BPP, optimized for LCD_ENDIAN_BIG == 0, LCD_BITSPERPIXEL == 8, LCD_SWAP_XY == 1
*/
#elif (LCD_ENDIAN_BIG == 0) && \
    (LCD_BITSPERPIXEL == 8) && \
    ( LCD_SWAP_XY)
static void _DrawBitLine1BPP_Swap(unsigned x, unsigned y, U8 const GUI_UNI_PTR * pData, int ysize, const U8 * pTrans, int BytesPerLine, U8 Pos) {
  unsigned x0, y0, Off;
  U32 Buffer, Data;
  U8 Index, Pixel, BufferValid, ShiftPos, DataMask;
  #if LCD_MIRROR_Y
    y0 = LCD_XSIZE - x - 1;
  #else
    y0 = x;
  #endif
  #if LCD_MIRROR_X
    x0 = LCD_YSIZE - y - 1;
  #else
    x0 = y;
  #endif
  Off         = XY2OFF(x0, y0);
  BufferValid = 0;
  ShiftPos    = 7 - (Pos & 7);
  DataMask    = 0x80 >> (7 - ShiftPos);
  #if LCD_MIRROR_X
    for (; ysize; ysize--, pData += BytesPerLine, x0--) {
  #else
    for (; ysize; ysize--, pData += BytesPerLine, x0++) {
  #endif
    U8 Shift = (x0 & 0x3) << 3;
    Pixel = (*pData & DataMask) >> ShiftPos;
    if (!BufferValid) {
      Buffer = READ_MEM(Off);
      BufferValid = 1;
    }
    switch (GUI_Context.DrawMode & (LCD_DRAWMODE_TRANS | LCD_DRAWMODE_XOR)) {
    case 0:
      Buffer &= ~(0xff << Shift);
      Index = *(pTrans + Pixel);
      Data = Index << Shift;
      Buffer |= Data;
      break;
    case LCD_DRAWMODE_XOR | LCD_DRAWMODE_TRANS:
    case LCD_DRAWMODE_XOR:
      if (Pixel) {
        Buffer ^= (0xff << Shift);
      }
      break;
    case LCD_DRAWMODE_TRANS:
      if (Pixel) {
        Buffer &= ~(0xff << Shift);
        Index = *(pTrans + Pixel);
        Data = Index << Shift;
        Buffer |= Data;
      }
      break;
    }
    #if LCD_MIRROR_X
      if (!(x0 & 0x3)) {
        BufferValid = 0;
        WRITE_MEM(Off--, Buffer);
      }
    #else
      if ((x0 & 0x3) == 0x3) {
        BufferValid = 0;
        WRITE_MEM(Off++, Buffer);
      }
    #endif
  }
  if (BufferValid) {
    WRITE_MEM(Off, Buffer);
  }
}

/*********************************************************************
*
*       Draw Bitmap 1 BPP, optimized for LCD_ENDIAN_BIG == 0, LCD_BITSPERPIXEL == 4
*/
#elif (LCD_ENDIAN_BIG == 0) && \
    (LCD_BITSPERPIXEL == 4) && \
    (!LCD_MIRROR_X) && \
    (!LCD_MIRROR_Y) && \
    (!LCD_SWAP_XY)
static void _DrawBitLine1BPP(unsigned x, unsigned y, U8 const GUI_UNI_PTR * p, int Diff, int xsize, const LCD_PIXELINDEX * pTrans) {
  U8 Mode;
  LCD_PIXELINDEX Index0 = *(pTrans + 0);
  LCD_PIXELINDEX Index1 = *(pTrans + 1);
  x += Diff;
  Mode = GUI_Context.DrawMode & (LCD_DRAWMODE_TRANS | LCD_DRAWMODE_XOR);
  if (Mode == 0) {
    /* Check if filling will do ... */
    if (Index0 == Index1) {
      LCD_PIXELINDEX ColorIndexOld = LCD_COLORINDEX;  /* Save forground color */
      LCD_COLORINDEX = Index0;                        /* Set foreground color */
      LCD_L0_DrawHLine(x, y, x + xsize - 1);
      LCD_COLORINDEX = ColorIndexOld;
    } else { 
      /* O.K., we have to draw ... */
      int Off, NumPixel_0, NumPixel_1, i;
      U32 Data, ColorMask, AndMask;
      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);
      /* First DWORD */
      if (NumPixel_0) {
        ColorMask = 0;
        AndMask = ~(0xFFFFFFFF << (4 * NumPixel_0));
        if ((8 - NumPixel_0) > xsize) {
          AndMask |= ~(0xFFFFFFFF >> (4 * (7 - NumPixel_1)));
        }
        for (i = NumPixel_0; (i < 8) && xsize; i++, xsize--) {
          U8 Index = *p & (0x80 >> Diff) ? Index1 : Index0;
          if (++Diff == 8) {
            Diff = 0;
            p++;
          }
          ColorMask |= Index << (4 * i);
        }
        Data = READ_MEM(Off);
        Data &= AndMask;
        Data |= ColorMask;
        WRITE_MEM(Off, Data);
        Off++;
      }
      /* Complete DWORDS */
      while (xsize >= 8) {
        ColorMask = 0;
        for (i = 0; i < 8; i++) {
          U8 Index = *p & (0x80 >> Diff) ? Index1 : Index0;
          if (++Diff == 8) {
            Diff = 0;
            p++;
          }
          ColorMask |= Index << (4 * i);
        }
        WRITE_MEM(Off, ColorMask);
        Off++;
        xsize -= 8;
      }
      /* Last DWORD */
      if (xsize) {
        ColorMask = i = 0;
        AndMask = 0xFFFFFFF0 << (4 * NumPixel_1);
        while (xsize) {
          U8 Index = *p & (0x80 >> Diff) ? Index1 : Index0;
          if (++Diff == 8) {
            Diff = 0;
            p++;
          }
          ColorMask |= Index << (4 * i++);
          xsize--;
        }
        Data = READ_MEM(Off);
        Data &= AndMask;
        Data |= ColorMask;
        WRITE_MEM(Off, Data);
      }
    }
  } else {
    switch (Mode) {
    case LCD_DRAWMODE_TRANS:
      do {
        if (*p & (0x80 >> Diff)) {
          LCD_L0_SetPixelIndex(x, y, Index1);
        }
        x++;
        if (++Diff == 8) {
          Diff = 0;
          p++;
        }
      } while (--xsize);
      break;
    case LCD_DRAWMODE_XOR | LCD_DRAWMODE_TRANS:
    case LCD_DRAWMODE_XOR:
      do {
        if (*p & (0x80 >> Diff)) {
          int Pixel = LCD_L0_GetPixelIndex(x, y);
          LCD_L0_SetPixelIndex(x, y, LCD_NUM_COLORS - 1 - Pixel);
        }
        x++;
        if (++Diff == 8) {
          Diff = 0;
          p++;
        }
      } while (--xsize);
      break;
    }
  }
}

/*********************************************************************
*
*       Draw Bitmap 1 BPP, optimized for LCD_ENDIAN_BIG == 0, LCD_BITSPERPIXEL == 2
*/
#elif (LCD_ENDIAN_BIG == 0) && \
    (LCD_BITSPERPIXEL == 2) && \
    (!LCD_MIRROR_X) && \
    (!LCD_MIRROR_Y) && \
    (!LCD_SWAP_XY)
static void _DrawBitLine1BPP(unsigned x, unsigned y, U8 const GUI_UNI_PTR * p, int Diff, int xsize, const LCD_PIXELINDEX * pTrans) {
  U8 Mode;
  LCD_PIXELINDEX Index0 = *(pTrans + 0);
  LCD_PIXELINDEX Index1 = *(pTrans + 1);
  x += Diff;
  Mode = GUI_Context.DrawMode & (LCD_DRAWMODE_TRANS | LCD_DRAWMODE_XOR);
  if (Mode == 0) {
    /* Check if filling will do ... */
    if (Index0 == Index1) {
      LCD_PIXELINDEX ColorIndexOld = LCD_COLORINDEX;  /* Save forground color */
      LCD_COLORINDEX = Index0;                        /* Set foreground color */
      LCD_L0_DrawHLine(x, y, x + xsize - 1);
      LCD_COLORINDEX = ColorIndexOld;
    } else { 
      /* O.K., we have to draw ... */
      int Off, NumPixel_0, NumPixel_1, i;
      U32 Data, ColorMask, AndMask;
      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);
      /* First DWORD */
      if (NumPixel_0) {
        ColorMask = 0;
        AndMask = ~(0xFFFFFFFF << (2 * NumPixel_0));
        if ((16 - NumPixel_0) > xsize) {
          AndMask |= ~(0xFFFFFFFF >> (2 * (15 - NumPixel_1)));
        }
        for (i = NumPixel_0; (i < 16) && xsize; i++, xsize--) {
          U8 Index = *p & (0x80 >> Diff) ? Index1 : Index0;
          if (++Diff == 8) {
            Diff = 0;
            p++;
          }
          ColorMask |= Index << (2 * i);
        }
        Data = READ_MEM(Off);
        Data &= AndMask;
        Data |= ColorMask;
        WRITE_MEM(Off, Data);
        Off++;
      }
      /* Complete DWORDS */
      while (xsize >= 16) {
        ColorMask = 0;
        for (i = 0; i < 16; i++) {
          U8 Index = *p & (0x80 >> Diff) ? Index1 : Index0;
          if (++Diff == 8) {
            Diff = 0;
            p++;
          }
          ColorMask |= Index << (2 * i);
        }
        WRITE_MEM(Off, ColorMask);
        Off++;
        xsize -= 16;
      }
      /* Last DWORD */
      if (xsize) {
        ColorMask = i = 0;
        AndMask = 0xFFFFFFFC << (2 * NumPixel_1);
        while (xsize) {
          U8 Index = *p & (0x80 >> Diff) ? Index1 : Index0;
          if (++Diff == 8) {
            Diff = 0;
            p++;
          }
          ColorMask |= Index << (2 * i++);
          xsize--;
        }
        Data = READ_MEM(Off);
        Data &= AndMask;
        Data |= ColorMask;
        WRITE_MEM(Off, Data);
      }
    }
  } else {
    switch (Mode) {
    case LCD_DRAWMODE_TRANS:
      do {
        if (*p & (0x80 >> Diff)) {
          LCD_L0_SetPixelIndex(x, y, Index1);
        }
        x++;
        if (++Diff == 8) {
          Diff = 0;
          p++;
        }
      } while (--xsize);
      break;
    case LCD_DRAWMODE_XOR | LCD_DRAWMODE_TRANS:
    case LCD_DRAWMODE_XOR:
      do {
        if (*p & (0x80 >> Diff)) {
          int Pixel = LCD_L0_GetPixelIndex(x, y);
          LCD_L0_SetPixelIndex(x, y, LCD_NUM_COLORS - 1 - Pixel);
        }
        x++;
        if (++Diff == 8) {
          Diff = 0;
          p++;
        }
      } while (--xsize);
      break;
    }
  }
}

/*********************************************************************
*
*       Draw Bitmap 1 BPP, optimized for LCD_ENDIAN_BIG == 0, LCD_BITSPERPIXEL == 2, LCD_SWAP_XY == 1
*/
#elif (LCD_ENDIAN_BIG == 0) && \
    (LCD_BITSPERPIXEL == 2) && \
    (LCD_SWAP_XY)
static void _DrawBitLine1BPP_Swap(unsigned x, unsigned y, U8 const GUI_UNI_PTR * pData, int ysize, const U8 * pTrans, int BytesPerLine, U8 Pos) {
  unsigned x0, y0, Off;
  U32 Buffer, Data;
  U8 Index, Pixel, BufferValid, ShiftPos, DataMask;
  #if LCD_MIRROR_Y
    y0 = LCD_XSIZE - x - 1;
  #else
    y0 = x;
  #endif
  #if LCD_MIRROR_X
    x0 = LCD_YSIZE - y - 1;
  #else
    x0 = y;
  #endif
  Off         = XY2OFF(x0, y0);
  BufferValid = 0;
  ShiftPos    = 7 - (Pos & 7);
  DataMask    = 0x80 >> (7 - ShiftPos);
  #if LCD_MIRROR_X
    for (; ysize; ysize--, pData += BytesPerLine, x0--) {
  #else
    for (; ysize; ysize--, pData += BytesPerLine, x0++) {
  #endif
    U8 Shift = (x0 & 0xf) << 1;
    Pixel = (*pData & DataMask) >> ShiftPos;
    if (!BufferValid) {
      Buffer = READ_MEM(Off);
      BufferValid = 1;
    }
    switch (GUI_Context.DrawMode & (LCD_DRAWMODE_TRANS | LCD_DRAWMODE_XOR)) {
    case 0:
      Buffer &= ~(0x3 << Shift);
      Index = *(pTrans + Pixel);
      Data = Index << Shift;
      Buffer |= Data;
      break;
    case LCD_DRAWMODE_XOR | LCD_DRAWMODE_TRANS:
    case LCD_DRAWMODE_XOR:
      if (Pixel) {
        Buffer ^= (0x3 << Shift);
      }
      break;
    case LCD_DRAWMODE_TRANS:
      if (Pixel) {
        Buffer &= ~(0x3 << Shift);
        Index = *(pTrans + Pixel);
        Data = Index << Shift;
        Buffer |= Data;
      }
      break;
    }
    #if LCD_MIRROR_X
      if (!(x0 & 0xf)) {
        BufferValid = 0;
        WRITE_MEM(Off--, Buffer);
      }
    #else
      if ((x0 & 0xf) == 0xf) {
        BufferValid = 0;
        WRITE_MEM(Off++, Buffer);
      }
    #endif
  }
  if (BufferValid) {
    WRITE_MEM(Off, Buffer);
  }
}

/*********************************************************************
*
*       Draw Bitmap 1 BPP, optimized for LCD_ENDIAN_BIG == 0, LCD_BITSPERPIXEL == 1
*/
#elif (LCD_ENDIAN_BIG == 0) && \
    (LCD_BITSPERPIXEL == 1) && \
    (!LCD_MIRROR_X) && \
    (!LCD_MIRROR_Y) && \
    (!LCD_SWAP_XY)
static void _DrawBitLine1BPP(unsigned x, unsigned y, U8 const GUI_UNI_PTR * p, int Diff, int xsize, const LCD_PIXELINDEX * pTrans) {
  U8 Mode;
  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);
  x += Diff;
  Mode = GUI_Context.DrawMode & (LCD_DRAWMODE_TRANS | LCD_DRAWMODE_XOR);
  if (Mode == 0) {
    /* Check if filling will do ... */
    if (Index0 == Index1) {
      LCD_PIXELINDEX ColorIndexOld = LCD_COLORINDEX;  /* Save forground color */
      LCD_COLORINDEX = Index0;                        /* Set foreground color */
      LCD_L0_DrawHLine(x, y, x + xsize - 1);
      LCD_COLORINDEX = ColorIndexOld;
    } else { 
      /* O.K., we have to draw ... */
      int Off, NumPixel_0, NumPixel_1, i;
      U32 Data, ColorMask, AndMask;
      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);
      /* First DWORD */
      if (NumPixel_0) {
        ColorMask = 0;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天综合色天天综合色h| 国产电影一区在线| 国产精品视频在线看| 91精品黄色片免费大全| av中文字幕不卡| 国产在线一区观看| 亚洲一区二区在线播放相泽| 久久亚洲综合色一区二区三区| 欧美视频在线一区二区三区| 成人精品国产福利| 久久国产精品一区二区| 亚洲午夜免费福利视频| 欧美国产成人精品| 精品国产亚洲一区二区三区在线观看| 色综合久久九月婷婷色综合| 国产精品自产自拍| 免费三级欧美电影| 午夜国产不卡在线观看视频| 亚洲欧美另类久久久精品2019| 国产午夜精品在线观看| 日韩欧美一级精品久久| 欧美日韩在线直播| 色偷偷88欧美精品久久久| 成人黄色片在线观看| 韩国精品主播一区二区在线观看| 日韩成人午夜电影| 亚洲高清免费一级二级三级| 一区二区三区四区不卡视频| 亚洲人成精品久久久久久| 国产清纯白嫩初高生在线观看91 | 亚洲精品乱码久久久久久 | 亚洲国产成人tv| 亚洲精品乱码久久久久久日本蜜臀| 国产精品萝li| 综合电影一区二区三区 | 91福利精品视频| 色婷婷av一区二区三区大白胸 | 国产sm精品调教视频网站| 韩国女主播一区| 国产一区激情在线| 韩国欧美一区二区| 国产综合久久久久久鬼色 | 91麻豆.com| 在线免费观看日本一区| 在线观看三级视频欧美| 欧美中文字幕不卡| 欧美三级蜜桃2在线观看| 欧美日韩国产片| 欧美一级黄色大片| 日韩三级视频中文字幕| 精品少妇一区二区三区视频免付费| 精品伦理精品一区| 国产人伦精品一区二区| 国产精品久久久久久久久久久免费看 | 国产乱码精品一区二区三| 国产精品一区三区| 成人综合婷婷国产精品久久免费| fc2成人免费人成在线观看播放 | 久久亚洲捆绑美女| 国产欧美综合在线| 亚洲日本在线视频观看| 夜夜操天天操亚洲| 蜜臀av性久久久久蜜臀av麻豆| 国产中文一区二区三区| 99在线热播精品免费| 在线国产亚洲欧美| 欧美一区二区视频在线观看2022| 精品国产sm最大网站| 中文字幕av免费专区久久| 亚洲乱码国产乱码精品精98午夜 | 国产午夜精品一区二区三区嫩草 | 午夜精品久久久久久久久久久 | 九九九精品视频| 国产91清纯白嫩初高中在线观看| 色婷婷激情一区二区三区| 在线91免费看| 中文字幕欧美激情一区| 亚洲成人动漫一区| 国产黄色精品网站| 日本韩国欧美三级| 久久综合狠狠综合久久激情 | 亚洲精品在线三区| 中文字幕在线观看一区| 国产精品一区二区在线观看网站| 97久久精品人人澡人人爽| 欧美日韩一区在线| 国产色综合一区| 三级不卡在线观看| 成人精品国产福利| 日韩欧美aaaaaa| 亚洲美女屁股眼交3| 欧美aaaaaa午夜精品| av电影天堂一区二区在线| 日韩一级片网址| 一区二区免费在线| 国产成人免费在线视频| 欧美裸体bbwbbwbbw| 中文字幕在线观看一区| 九一久久久久久| 欧美丰满美乳xxx高潮www| 亚洲欧洲一区二区三区| 麻豆精品在线播放| 在线观看91视频| 国产精品国产自产拍在线| 免费在线成人网| 欧美性一级生活| 国产精品私人影院| 精品中文av资源站在线观看| 欧美精品成人一区二区三区四区| 国产精品护士白丝一区av| 精品无人区卡一卡二卡三乱码免费卡| 91福利视频网站| 国产精品理伦片| 国产精品自拍一区| 日韩一级黄色片| 亚洲影视在线播放| 91亚洲男人天堂| 国产精品国产三级国产| 精品一区二区三区视频| 91.麻豆视频| 视频在线观看国产精品| 在线观看亚洲成人| 最新国产成人在线观看| 国产高清在线观看免费不卡| 久久夜色精品国产噜噜av| 麻豆91在线观看| 欧美一区二区三区免费视频| 午夜欧美在线一二页| 在线观看视频一区二区| 伊人性伊人情综合网| 91在线观看一区二区| 国产精品美女久久久久久久网站| 国产一区在线精品| 精品第一国产综合精品aⅴ| 男女性色大片免费观看一区二区| 欧美日韩国产在线播放网站| 亚洲国产成人tv| 欧美日韩免费高清一区色橹橹| 亚洲午夜在线电影| 欧美色图免费看| 日日欢夜夜爽一区| 正在播放亚洲一区| 六月丁香综合在线视频| 精品国产成人在线影院| 高清av一区二区| |精品福利一区二区三区| 91美女蜜桃在线| 亚洲电影一级黄| 日韩欧美国产一区在线观看| 久久97超碰国产精品超碰| 久久久久久日产精品| 成人免费视频视频在线观看免费| 中文字幕制服丝袜成人av| 色先锋久久av资源部| 亚洲午夜免费视频| 日韩亚洲欧美在线观看| 国模大尺度一区二区三区| 国产精品乱人伦中文| 91在线视频免费91| 天涯成人国产亚洲精品一区av| 欧美大胆一级视频| 国产成人精品亚洲午夜麻豆| 亚洲天堂免费在线观看视频| 欧美日韩成人在线| 激情亚洲综合在线| 国产精品毛片大码女人| 欧美日韩一级大片网址| 美女爽到高潮91| 国产精品免费网站在线观看| 欧美在线视频不卡| 美女网站一区二区| 国产精品久久久久久久第一福利 | 亚洲一区视频在线| 91精品国产91热久久久做人人| 国产麻豆一精品一av一免费| 亚洲视频精选在线| 欧美一区二区三区啪啪| 成人av资源网站| 免费亚洲电影在线| 综合久久久久综合| 日韩一区二区三区电影在线观看 | 99久精品国产| 蜜臀精品一区二区三区在线观看 | 久久精品国产精品亚洲红杏| 最新欧美精品一区二区三区| 日韩欧美一区二区久久婷婷| www.日韩精品| 国内精品伊人久久久久av一坑| 一区二区三区av电影| www一区二区| 欧美日韩一区高清| 国产a视频精品免费观看| 日韩精品一二三四| 亚洲欧美日韩国产一区二区三区| 日韩精品专区在线| 色婷婷亚洲婷婷| 高清成人免费视频| 精品一区二区三区免费播放| 亚洲午夜电影在线观看| 中文字幕亚洲精品在线观看|