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

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

?? lcd13xx.c

?? uCGUI
?? C
?? 第 1 頁 / 共 5 頁
字號:
        *       LCD_L0_XorPixel                                 *
        *                                                       *
        *********************************************************

Purpose:  This routine is called by emWin. It writes 1 pixel into the
          display.

*/

void LCD_L0_XorPixel(int x, int y) {
  XORPIXEL(x, y);
}

/*
        *********************************************************
        *                                                       *
        *       LCD_L0_SetPixelIndex                            *
        *                                                       *
        *********************************************************

Purpose:  This routine is called by emWin. It writes 1 pixel into the
          display.

*/
void LCD_L0_SetPixelIndex(int x, int y, int ColorIndex) {
  SETPIXEL(x, y, ColorIndex);
}


/*
        *********************************************************
        *                                                       *
        *          LCD_L0_DrawHLine optimized                      *
        *                                                       *
        *          16 bit bus, Using BITBLT                     *
        *                                                       *
        *********************************************************
*/

#if (LCD_USE_BITBLT)           \
    && (!LCD_SWAP_XY)          \
    && (LCD_BUSWIDTH==16)      \
    && (!defined (LCD_LUT_COM))   \
    && (!defined (LCD_LUT_SEG))   \
    && ((LCD_CONTROLLER == 1356)||(LCD_CONTROLLER == 13806))

void LCD_L0_DrawHLine  (int x0, int y,  int x1) {
  #if LCD_MIRROR_X
    #define X0 (LCD_XSIZE-1-(x1))
    #define X1 (LCD_XSIZE-1-(x0))
  #else
    #define X0 x0
    #define X1 x1
  #endif
  #if LCD_MIRROR_Y
    #define Y0 (LCD_YSIZE-1-(y))
  #else
    #define Y0 y
  #endif
  if (x0>x1) return;
  LCD_FillRectBB(X0,Y0,X1,Y0);
  #undef X0
  #undef X1
  #undef Y0
}


/*
        *********************************************************
        *                                                       *
        *          LCD_L0_DrawHLine optimized                      *
        *                                                       *
        *          16 bit bus, 16 bpp                           *
        *                                                       *
        *********************************************************
*/

#elif (LCD_OPTIMIZE)             \
      && (!LCD_SWAP_XY)          \
      && (!LCD_MIRROR_Y)         \
      && (LCD_BUSWIDTH==16)      \
      && (!defined (LCD_LUT_COM))   \
      && (!defined (LCD_LUT_SEG))   \
      && ((LCD_BITSPERPIXEL == 16) || (LCD_BITSPERPIXEL == 15))

void LCD_L0_DrawHLine  (int x0, int y,  int x1) {
  #if LCD_MIRROR_X
    #define X0 (LCD_XSIZE-1-(x1))
  #else
    #define X0 x0
  #endif
  if (x0>x1) return;
  {
    register tOff Off = XY2OFF(X0,y);
    register int Rem = x1-x0+1;
    if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {
      for (; Rem--; Off++) {
        U16 Data;
        READ_MEM(Off, Data);
        Data = LCD_NUM_COLORS-1-Data;
        WRITE_MEM(Off,Data);
      }
    } else {
      for (; Rem >= 8; Off += 8) {
        WRITE_MEM(Off,COLOR);
        WRITE_MEM(Off+1,COLOR);
        WRITE_MEM(Off+2,COLOR);
        WRITE_MEM(Off+3,COLOR);
        WRITE_MEM(Off+4,COLOR);
        WRITE_MEM(Off+5,COLOR);
        WRITE_MEM(Off+6,COLOR);
        WRITE_MEM(Off+7,COLOR);
        Rem -=8;
      }
      for (; Rem--; Off++) {
        WRITE_MEM(Off,COLOR);
      }
    }
  }
  #undef X0
}


/*
        *********************************************************
        *                                                       *
        *          LCD_L0_DrawHLine optimized                   *
        *                                                       *
        *          16 bit bus, 8 bpp                            *
        *                                                       *
        *********************************************************
*/

#elif (LCD_OPTIMIZE)             \
      && (!LCD_SWAP_XY)          \
      && (LCD_BUSWIDTH==16)      \
      && (!defined (LCD_LUT_SEG))   \
      && (LCD_BITSPERPIXEL == 8)
      
void LCD_L0_DrawHLine  (int x0, int y,  int x1) {
  #if LCD_MIRROR_X
  {
    int t = (LCD_XSIZE-1-(x0));
    x0 = (LCD_XSIZE-1-(x1));
    x1 = t;
  }
  #endif
  #if LCD_MIRROR_Y
    y = (LCD_YSIZE-1-(y));
  #endif
  {
    register tOff Off = XY2OFF(x0,y);
    /* register */ U16 Data;
/* XOR mode */
    if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {
      if (x0&1) {
        READ_MEM(Off, Data);
        Data ^= ((unsigned int)255);
        WRITE_MEM(Off,Data);
        x0++;
        Off++;
      }
      for (; x0<x1; x0+=2, Off++) {
        READ_MEM(Off,Data);
        Data ^= 0xffff;
        WRITE_MEM(Off,Data);
      }      
      if ((x1&1)==0) {
        READ_MEM(Off,Data);
        Data ^=  (U16)255<<8;
        WRITE_MEM(Off,Data);
      }
/* WRITE mode */
    } else {
      if (x0&1) {
        READ_MEM(Off,Data);
        Data = (Data&((U16)0xff<<8)) | (COLOR);
        WRITE_MEM(Off,Data);
        x0++;
        Off++;
      }
      Data = COLOR|((U16)COLOR<<8);
      /* Optimization for longer lines ... */
      #ifdef LCD_WRITE_MEM32
      if ((x0<x1-4) && (x0&2)) { /* Write 16 bits if necessary */
        WRITE_MEM(Off,Data);
        x0+=2;
        Off++;
      }
      /* write 4 pixels at a time, loop unrolled  */
      { register U32 Data32 = Data| (Data<<16);
        for (;x0<x1-32-2; x0+=32, Off+=16) {
          LCD_WRITE_MEM32(Off+0,Data32);
          LCD_WRITE_MEM32(Off+2,Data32);
          LCD_WRITE_MEM32(Off+4,Data32);
          LCD_WRITE_MEM32(Off+6,Data32);
          LCD_WRITE_MEM32(Off+8,Data32);
          LCD_WRITE_MEM32(Off+10,Data32);
          LCD_WRITE_MEM32(Off+12,Data32);
          LCD_WRITE_MEM32(Off+14,Data32);
        }
      }
      { register U32 Data32 = Data| (Data<<16);
        for (;x0<x1-16-2; x0+=16, Off+=8) {
          LCD_WRITE_MEM32(Off+0,Data32);
          LCD_WRITE_MEM32(Off+2,Data32);
          LCD_WRITE_MEM32(Off+4,Data32);
          LCD_WRITE_MEM32(Off+6,Data32);
        }
      }
      { register U32 Data32 = Data| (Data<<16);
        for (;x0<x1-8-2; x0+=8, Off+=4) {
          LCD_WRITE_MEM32(Off+0,Data32);
          LCD_WRITE_MEM32(Off+2,Data32);
        }
      }
      #else
      for (;x0<x1-10; x0+=12, Off+=6) {
        /* swapping can be ignored, so use faster LCD_WRITE_MEM */
        LCD_WRITE_MEM(Off,Data); 
        LCD_WRITE_MEM(Off+1,Data);
        LCD_WRITE_MEM(Off+2,Data);
        LCD_WRITE_MEM(Off+3,Data);
        LCD_WRITE_MEM(Off+4,Data);
        LCD_WRITE_MEM(Off+5,Data);
      }
      #endif
      /* write the last pixels 2 at a time */
      for (; x0<x1; x0+=2, Off++) {
        /* swapping can be ignored, so use faster LCD_WRITE_MEM */
        LCD_WRITE_MEM(Off,Data);
      }      
      if ((x1&1)==0) {
        READ_MEM(Off, Data);
        Data = (Data&((unsigned int)0xff)) | ((U16)COLOR<<8);
        WRITE_MEM(Off,Data);
      }
    }
  }
}



/*
        *********************************************************
        *                                                       *
        *          LCD_L0_DrawHLine optimized                   *
        *                                                       *
        *          16 bit bus, 4 bpp                            *
        *                                                       *
        *********************************************************
*/

#elif (LCD_OPTIMIZE)             \
      && (!LCD_SWAP_XY)          \
      && (LCD_BUSWIDTH==16)      \
      && (!defined (LCD_LUT_SEG))   \
      && (LCD_BITSPERPIXEL == 4)

void LCD_L0_DrawHLine  (int x0, int y,  int x1) {
  #if LCD_MIRROR_X
    #define X0 (LCD_XSIZE-1-(x1))
  #else
    #define X0 x0
  #endif
  #if LCD_MIRROR_Y
    #define Y (LCD_YSIZE - 1 - y)
  #else
    #define Y y
  #endif
  if (x0>x1) return;
  {
    register tOff Off;
    register int Rem;
    if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {
      for (; (x0&3    )&&(x0<=x1); x0++) XORPIXEL(x0, y);
      for (; ((x1+1)&3)&&(x0<=x1); x1--) XORPIXEL(x1, y);
      Off = XY2OFF(X0,Y);
      Rem = (x1-x0+4)>>2;
      for (; Rem--; Off++) {
        U16 c;
        READ_MEM(Off, c);
        c ^= 0xffff; 
        WRITE_MEM(Off,c);
      }
    } else {
      U16 col = COLOR+(COLOR<<4)+(COLOR<<8)+(COLOR<<12);
      for (; (x0&3    )&&(x0<=x1); x0++)
        SETPIXEL(x0, y, COLOR);
      for (; ((x1+1)&3)&&(x0<=x1); x1--)
        SETPIXEL(x1, y, COLOR);
      Off = XY2OFF(X0,Y);
      Rem = (x1-x0+4)>>2;
      for (; Rem--; Off++) {
        /* swapping can be ignored, so use faster LCD_WRITE_MEM */
        LCD_WRITE_MEM(Off,col);
      }
    }
  }
  #undef X0
}

/*
        *********************************************************
        *                                                       *
        *          LCD_L0_DrawHLine optimized                   *
        *                                                       *
        *          16 bit bus, 1 bpp                            *
        *                                                       *
        *********************************************************
*/

#elif (LCD_OPTIMIZE)             \
      && (!LCD_SWAP_XY)          \
      && (LCD_BUSWIDTH==16)      \
      && (!defined (LCD_LUT_SEG))   \
      && (LCD_BITSPERPIXEL == 1)

void LCD_L0_DrawHLine  (int x0, int y,  int x1) {
  #if LCD_MIRROR_X
  {
    int temp = x0;
    x0 = (LCD_XSIZE-1-(x1));
    x1 = (LCD_XSIZE-1-(temp));
  }
  #endif
  #if LCD_MIRROR_Y
  {
    y = (LCD_YSIZE - 1 - y);
  }
  #endif
  {
    register tOff Off = XY2OFF(x0,y);
    int iWord = x0>>4;
    int Word1 = x1>>4;
    U16 Mask   =  0xffff   >> (x0&15);
    U16 EndMask = 0xffff8000 >> (x1&15);
    U16 Data;
    if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {
      for (; iWord<Word1; iWord++) {
        READ_MEM(Off,Data);
        Data ^= Mask; 
        WRITE_MEM(Off++,Data);
        Mask = 0xffff;
      }
      Mask &= EndMask;
      READ_MEM(Off,Data);
      Data ^= Mask; 
      WRITE_MEM(Off++,Data);
    } else {                                  /* Clear pixels in line */
      int NumWords = Word1-iWord;
      if (COLOR==0) {
        if (NumWords) {
          READ_MEM(Off,Data);
          Data &= ~Mask;
          WRITE_MEM(Off++,Data);
          NumWords--;
          /* Fill Words in 2 loops for speed reasons ... */
          for (; NumWords>=4; NumWords-=4) {
            /* swapping can be ignored, so use faster LCD_WRITE_MEM */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品99国产精品| 欧美日韩国产精品成人| 欧美性感一类影片在线播放| 26uuu国产电影一区二区| 国产精品毛片久久久久久| 亚洲第一福利一区| av中文字幕在线不卡| 日韩一区二区三区四区五区六区| 亚洲日本欧美天堂| 国产高清成人在线| 精品国产成人在线影院| 午夜国产精品影院在线观看| 91网站在线观看视频| 国产亚洲欧美一区在线观看| 免费看日韩a级影片| 欧洲av一区二区嗯嗯嗯啊| 亚洲欧洲99久久| 成人av免费在线播放| 精品av久久707| 秋霞午夜av一区二区三区| 在线看不卡av| 亚洲一区二区在线免费看| 成人av电影在线观看| 国产亚洲精品资源在线26u| 免费观看日韩电影| 日韩视频一区在线观看| 日韩av不卡在线观看| 欧美无砖专区一中文字| 亚洲三级在线免费观看| av电影天堂一区二区在线观看| 久久精品欧美日韩精品| 狠狠色狠狠色综合日日91app| 欧美精品一二三| 日韩电影一二三区| 中文字幕中文在线不卡住| 国产一区二区0| 欧美激情在线一区二区| 成人网男人的天堂| 最新中文字幕一区二区三区| a4yy欧美一区二区三区| 国产精品传媒入口麻豆| 色香蕉成人二区免费| 亚洲线精品一区二区三区八戒| 在线观看91精品国产入口| 亚洲美女免费视频| 欧美日韩国产综合草草| 日本美女一区二区三区| 欧美xingq一区二区| 国产精品综合久久| 自拍偷自拍亚洲精品播放| 色综合视频在线观看| 亚洲精品日日夜夜| 91精品国产综合久久久蜜臀粉嫩| 免费人成在线不卡| 中文字幕精品一区| 91久久香蕉国产日韩欧美9色| 亚洲自拍另类综合| 日韩精品中文字幕在线一区| 激情久久久久久久久久久久久久久久| 久久久久国色av免费看影院| 99视频在线精品| 日产国产欧美视频一区精品| 久久久综合精品| 欧美羞羞免费网站| 国产精品一区在线观看乱码| 亚洲欧洲日产国码二区| 欧美日韩小视频| 国产一区视频在线看| 亚洲欧洲综合另类在线 | 天天综合日日夜夜精品| 欧美tickling网站挠脚心| 国产精品一品二品| 亚洲v日本v欧美v久久精品| 久久青草欧美一区二区三区| 欧洲另类一二三四区| 国产另类ts人妖一区二区| 樱桃视频在线观看一区| 欧美xxx久久| 欧美日韩精品电影| 北条麻妃一区二区三区| 裸体一区二区三区| 亚洲猫色日本管| 久久久亚洲高清| 欧美自拍丝袜亚洲| 国产精品中文字幕一区二区三区| 一区二区不卡在线视频 午夜欧美不卡在 | 奇米亚洲午夜久久精品| 国产偷国产偷精品高清尤物| 欧美亚洲国产怡红院影院| 国产精品影视在线| 蜜桃久久av一区| 亚洲成人精品影院| 亚洲精品乱码久久久久久| 久久综合久久鬼色| 欧美一区二区三区免费视频| 丁香网亚洲国际| 国产综合久久久久久鬼色| 亚洲一区二区成人在线观看| 国产精品久久久久久亚洲伦 | 欧美成人乱码一区二区三区| 色网综合在线观看| av中文字幕亚洲| gogo大胆日本视频一区| 国产盗摄视频一区二区三区| 久久综合综合久久综合| 日韩不卡免费视频| 日本亚洲电影天堂| 日韩在线一区二区| 日韩综合在线视频| 亚洲第一福利一区| 亚洲成人一二三| 亚洲午夜日本在线观看| 亚洲最新视频在线观看| 亚洲精品第一国产综合野| 1024成人网| 伊人夜夜躁av伊人久久| 中文字幕日韩av资源站| 综合激情网...| 亚洲午夜在线电影| 亚洲成av人片在线| 日韩国产一二三区| 老司机午夜精品| 另类人妖一区二区av| 久久不见久久见中文字幕免费| 三级不卡在线观看| 视频一区二区国产| 久久不见久久见中文字幕免费| 久久精品国产一区二区| 欧美午夜精品免费| 日韩一区二区视频在线观看| 日韩欧美国产麻豆| 欧美国产日韩在线观看| 国产精品久久免费看| 中文字幕日本乱码精品影院| 国产精品欧美经典| 午夜视频一区二区| 国产综合色在线视频区| 成人av在线资源网| 欧美日韩综合色| 日韩欧美激情四射| 国产精品国产三级国产有无不卡 | 中文字幕中文在线不卡住| 亚洲免费视频成人| 免费在线观看一区二区三区| 久久99久国产精品黄毛片色诱| 国产乱子伦视频一区二区三区| 不卡视频在线看| 91国产精品成人| 欧美v亚洲v综合ⅴ国产v| 中文字幕精品一区二区精品绿巨人| **性色生活片久久毛片| 日韩国产成人精品| 本田岬高潮一区二区三区| 欧美视频自拍偷拍| 国产性天天综合网| 亚洲一区二区欧美日韩| 久久99九九99精品| 欧洲精品中文字幕| 国产精品网站在线| 日韩一区欧美二区| 99re热视频这里只精品| 欧美一级欧美三级在线观看 | 日韩电影在线一区| 99re免费视频精品全部| 欧美一区二区观看视频| 亚洲男人的天堂在线aⅴ视频| 精品午夜一区二区三区在线观看| 色综合一区二区三区| 精品国产3级a| 日日夜夜一区二区| 在线视频国产一区| 麻豆91精品视频| 日本福利一区二区| 中文无字幕一区二区三区| 日本亚洲天堂网| 在线看国产一区二区| 欧美国产综合色视频| 久久精品噜噜噜成人88aⅴ| 欧美亚洲综合另类| 成人欧美一区二区三区黑人麻豆 | 国产又黄又大久久| 欧美精品在线一区二区三区| 自拍偷在线精品自拍偷无码专区| 国产曰批免费观看久久久| 欧美一区日韩一区| 午夜精品久久久久久久99樱桃| 日本黄色一区二区| 日韩久久一区二区| 不卡欧美aaaaa| 欧美激情综合网| 成人国产一区二区三区精品| 久久亚洲精品小早川怜子| 丝袜a∨在线一区二区三区不卡| 欧美性感一类影片在线播放| 亚洲免费观看在线观看| 不卡的电视剧免费网站有什么| 国产精品丝袜久久久久久app| 国产一区二区精品久久99| 久久免费精品国产久精品久久久久 | 另类小说一区二区三区|