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

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

?? lcd444.c

?? UCGUI源代碼 windows可用的 UCGUI源代碼 windows可用的
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
*/

#if (LCD_BITSPERPIXEL > 8)
static void  DrawBitLine16BPP(int x, int y, U16 const * p, int xsize, const LCD_PIXELINDEX * pTrans) {
  LCD_PIXELINDEX pixel;
  if ((GUI_Context.DrawMode & LCD_DRAWMODE_TRANS) == 0) {
    if (pTrans) {
      for (; xsize > 0; xsize--, x++, p++) {
        pixel = *p;
        LCD_L0_SetPixelIndex(x, y, *(pTrans + pixel));
      }
    } else {
      for (;xsize > 0; xsize--, x++, p++) {
        LCD_L0_SetPixelIndex(x, y, *p);
      }
    }
  } else {
    if (pTrans) {
      for (; xsize > 0; xsize--, x++, p++) {
        pixel = *p;
        if (pixel) {
          LCD_L0_SetPixelIndex(x, y, *(pTrans + pixel));
        }
      }
    } else {
      for (; xsize > 0; xsize--, x++, p++) {
        pixel = *p;
        if (pixel) {
          LCD_L0_SetPixelIndex(x, y, pixel);
        }
      }
    }
  }
}
#endif

/*********************************************************************
*
*       Exported functions
*
**********************************************************************
*/

/*********************************************
*
*       LCD_L0_SetPixelIndex
*
**********************************************
Purpose:
  Sets the index of the given pixel. The upper layers of emWin
  calling this routine make sure that the coordinates are in range, so
  that no check on the parameters needs to be performed.
*/

void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex) {
  unsigned Off;
  U16 Data;
  /* Convert logical into physical coordinates (Dep. on LCDConf.h) */
  #if LCD_SWAP_XY | LCD_MIRROR_X| LCD_MIRROR_Y
    int xPhys = LOG2PHYS_X(x, y);
    int yPhys = LOG2PHYS_Y(x, y);
  #else
    #define xPhys x
    #define yPhys y
  #endif
  /* Write into hardware ... Adapt to your system */
  {
    Off = Y2OFF(yPhys);
    Off += 3 * x/4;
    switch (x&3) {
    case 0:
      Data = LCD_READ_MEM16(Off);
      Data &= 0xf000;
      Data |= PixelIndex;
      LCD_WRITE_MEM16(Off, Data);
      break;
    case 1:;
      Data = LCD_READ_MEM16(Off);
      Data &= 0xfff;
      Data |= (U16)(PixelIndex << 12);
      LCD_WRITE_MEM16(Off, Data);
      Off++;
      Data = LCD_READ_MEM16(Off);
      Data &= 0xff00;
      Data |= PixelIndex>>4;
      LCD_WRITE_MEM16(Off, Data);
      break;
    case 2:;
      Data = LCD_READ_MEM16(Off);
      Data &= 0xff;
      Data |= (U16)(PixelIndex << 8);
      LCD_WRITE_MEM16(Off, Data);
      Off++;
      Data = LCD_READ_MEM16(Off);
      Data &= 0xfff0;
      Data |= PixelIndex>>8;
      LCD_WRITE_MEM16(Off, Data);
      break;
    case 3:;
      Data = LCD_READ_MEM16(Off);
      Data &= 0xf;
      Data |= PixelIndex << 4;
      LCD_WRITE_MEM16(Off, Data);
      break;
    }
    /* ... */
  }
}

/*********************************************
*
*       LCD_L0_GetPixelIndex
*
**********************************************
Purpose:
  Returns the index of the given pixel. The upper layers of emWin
  calling this routine make sure that the coordinates are in range, so
  that no check on the parameters needs to be performed.
*/

unsigned int LCD_L0_GetPixelIndex(int x, int y) {
  LCD_PIXELINDEX PixelIndex;
  U16 Data0, Data1;
  unsigned Off;
  /* Convert logical into physical coordinates (Dep. on LCDConf.h) */
  #if LCD_SWAP_XY | LCD_MIRROR_X| LCD_MIRROR_Y
    int xPhys = LOG2PHYS_X(x, y);
    int yPhys = LOG2PHYS_Y(x, y);
  #else
    #define xPhys x
    #define yPhys y
  #endif
  /* Write into hardware ... Adapt to your system */
  {
    Off = Y2OFF(yPhys);
    Off += 3 * x/4;
    switch (x&3) {
    case 0:
      PixelIndex = LCD_READ_MEM16(Off) & 0xfff;
      break;
    case 1:
      Data0 = LCD_READ_MEM16(Off);
      Off++;
      Data1 = LCD_READ_MEM16(Off);
      PixelIndex  = Data0 >> 12;
      PixelIndex |= (Data1 & 255) << 4;
      break;
    case 2:
      Data0 = LCD_READ_MEM16(Off);
      Off++;
      Data1 = LCD_READ_MEM16(Off);
      PixelIndex  = Data0 >> 8;
      PixelIndex |= (Data1 & 15) << 8;
      break;
    case 3:
      PixelIndex = LCD_READ_MEM16(Off);
      PixelIndex >>= 4;
      break;
    }
  }
  return PixelIndex;
}

/*********************************************
*
*       LCD_L0_XorPixel
*
**********************************************
*/

void LCD_L0_XorPixel(int x, int y) {
  LCD_PIXELINDEX PixelIndex = LCD_L0_GetPixelIndex(x, y);
  LCD_L0_SetPixelIndex(x, y, LCD_NUM_COLORS - PixelIndex - 1);
}

/*********************************************
*
*       LCD_L0_DrawHLine
*
**********************************************
*/

void LCD_L0_DrawHLine  (int x0, int y,  int x1) {
  if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {
    for (; x0 <= x1; x0++) {
      LCD_L0_XorPixel(x0, y);
    }
  } else {
    for (; x0 <= x1; x0++) {
      LCD_L0_SetPixelIndex(x0, y, LCD_COLORINDEX);
    }
  }
}

/*********************************************
*
*       LCD_L0_DrawVLine
*
**********************************************
*/

void LCD_L0_DrawVLine  (int x, int y0,  int y1) {
  if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {
    for (; y0 <= y1; y0++) {
      LCD_L0_XorPixel(x, y0);
    }
  } else {
    for (; y0 <= y1; y0++) {
      LCD_L0_SetPixelIndex(x, y0, LCD_COLORINDEX);
    }
  }
}

/*********************************************
*
*       LCD_L0_FillRect
*
**********************************************
*/

void LCD_L0_FillRect(int x0, int y0, int x1, int y1) {
  for (; y0 <= y1; y0++) {
    LCD_L0_DrawHLine(x0, y0, x1);
  }
}

/*********************************************
*
*       LCD_L0_DrawBitmap
*
**********************************************
*/

void LCD_L0_DrawBitmap(int x0, int y0,
                       int xsize, int ysize,
                       int BitsPerPixel, 
                       int BytesPerLine,
                       const U8* pData, int Diff,
                       const LCD_PIXELINDEX* pTrans)
{
  int i;
  /* Use _DrawBitLineXBPP */
  for (i=0; i<ysize; i++) {
    switch (BitsPerPixel) {
    case 1:
      _DrawBitLine1BPP(x0, i + y0, pData, Diff, xsize, pTrans);
      break;
      case 2:
        _DrawBitLine2BPP(x0, i + y0, pData, Diff, xsize, pTrans);
        break;
      case 4:
        _DrawBitLine4BPP(x0, i + y0, pData, Diff, xsize, pTrans);
        break;
      case 8:
        _DrawBitLine8BPP(x0, i + y0, pData, xsize, pTrans);
        break;
      case 16:
        DrawBitLine16BPP(x0, i + y0, (const U16 *)pData, xsize, pTrans);
        break;
    }
    pData += BytesPerLine;
  }
}

/*********************************************
*
*       LCD_L0_SetOrg
*
**********************************************
*/

void LCD_L0_SetOrg(int x, int y) {
  GUI_USE_PARA(x);
  GUI_USE_PARA(y);
}

/*********************************************
*
*       LCD_On / LCD_Off
*
**********************************************
*/

void LCD_On (void) {
#ifdef LCD_ON
  LCD_ON();
#endif
}

void LCD_Off (void) {
#ifdef LCD_OFF
  LCD_OFF();
#endif
}

/*********************************************
*
*       LCD_L0_Init
*
**********************************************
Purpose:
  Initialises the LCD-controller.
*/

int  LCD_L0_Init(void) {
  LCD_INIT_CONTROLLER();
  return 0;
}

/*********************************************
*
*       LCD_L0_SetLUTEntry
*
**********************************************
*/

void LCD_L0_SetLUTEntry(U8 Pos, LCD_COLOR Color) {
  GUI_USE_PARA(Pos);
  GUI_USE_PARA(Color);
}

#else

void LCD444_c(void) { } /* avoid empty object files */

#endif /* (LCD_CONTROLLER undefined) */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久一区二区三区国产精品| 久久久精品国产免大香伊 | 五月天一区二区| 久久精品视频网| 在线不卡中文字幕播放| 成人aa视频在线观看| 日本中文字幕一区二区有限公司| 中文字幕乱码亚洲精品一区| 欧美挠脚心视频网站| 99在线精品观看| 波多野结衣中文字幕一区| 成人性生交大片免费看中文| 国产成人在线视频网站| 国产不卡视频在线播放| 成人免费视频一区二区| 成年人国产精品| 在线国产亚洲欧美| 欧美精三区欧美精三区| 欧美日韩国产免费| 欧美亚洲另类激情小说| 欧美亚洲一区二区三区四区| 欧美日韩一区精品| 欧美成人一区二区| 2020日本不卡一区二区视频| 国产日产欧美一区二区视频| 欧美激情中文不卡| 久久在线免费观看| 欧美xxxxxxxx| 久久免费午夜影院| 国产欧美日韩激情| 国产精品污网站| 国产精品美女久久久久久2018| www久久久久| 中文字幕精品三区| 《视频一区视频二区| 中文字幕在线一区二区三区| 国产精品美女久久久久久2018| 国产欧美1区2区3区| 亚洲视频每日更新| 亚洲一区免费在线观看| 日韩精品一区第一页| 视频精品一区二区| 精品系列免费在线观看| 国产乱人伦偷精品视频免下载| 国产成人av自拍| 99久久综合国产精品| 欧美理论片在线| 欧美精品一区二区三区一线天视频 | 欧美性感一区二区三区| 欧美区在线观看| 亚洲精品在线三区| 亚洲免费在线视频| 奇米色一区二区| 国产suv精品一区二区6| 色综合久久久久综合体| 欧美一二三区在线观看| 国产精品你懂的| 免费成人美女在线观看.| 高清不卡在线观看av| 欧美日韩亚洲综合在线| 欧美韩国日本不卡| 裸体一区二区三区| 99久久久免费精品国产一区二区| 欧美久久一二区| 日本一区二区成人| 久久精品99国产精品| 91尤物视频在线观看| 91精品国产综合久久小美女| 亚洲国产精品成人综合色在线婷婷| 亚洲国产精品人人做人人爽| 国产成人综合在线播放| 欧美日韩美少妇| 亚洲三级电影全部在线观看高清| 极品美女销魂一区二区三区免费| 色一区在线观看| 亚洲视频一区在线观看| 精品亚洲成a人| 欧美日韩高清一区二区三区| 国产精品久久夜| 狠狠色综合色综合网络| 538在线一区二区精品国产| 亚洲欧美日韩中文播放| av一区二区久久| 国产目拍亚洲精品99久久精品| 久久精品999| 欧美va亚洲va在线观看蝴蝶网| 亚洲国产综合人成综合网站| a在线欧美一区| 国产精品久久99| 91亚洲男人天堂| 国产精品免费aⅴ片在线观看| 国内国产精品久久| 亚洲精品一区二区三区在线观看| 日韩激情一二三区| 欧美挠脚心视频网站| 午夜精品一区二区三区免费视频 | 99精品国产视频| 国产精品电影院| 91在线无精精品入口| 亚洲欧美日韩国产另类专区| 欧美三级中文字| 午夜精品一区二区三区三上悠亚| 4438成人网| 久久精品国产精品亚洲红杏| 精品国产三级a在线观看| 精品一区二区三区视频 | 成人激情文学综合网| 午夜天堂影视香蕉久久| 国产日韩欧美综合一区| 欧美乱妇23p| 99在线精品视频| 国产在线精品一区二区夜色| 亚洲国产成人tv| 亚洲欧洲国产专区| 国产偷v国产偷v亚洲高清| 欧美美女视频在线观看| 成人免费毛片app| 奇米综合一区二区三区精品视频| 亚洲天堂免费在线观看视频| 久久综合狠狠综合| 欧美一级日韩不卡播放免费| 色综合久久88色综合天天| 国产xxx精品视频大全| 久久机这里只有精品| 五月婷婷久久综合| 亚洲精选免费视频| 欧美国产精品v| 亚洲精品一区二区三区在线观看| 成人在线综合网站| 天天做天天摸天天爽国产一区| 久久综合九色综合久久久精品综合 | 色综合久久综合网97色综合| 日韩电影在线免费看| 国产精品伦理一区二区| 日韩视频一区二区在线观看| 99天天综合性| 国产不卡视频一区二区三区| 亚洲一卡二卡三卡四卡无卡久久| 久久久久久久电影| 2023国产精品| 2021国产精品久久精品| 久久日韩精品一区二区五区| 欧美r级电影在线观看| 91精品国产综合久久小美女| 欧美精选午夜久久久乱码6080| 99视频国产精品| 波多野结衣精品在线| 国产福利一区二区三区视频在线 | 久久99国产精品麻豆| 青青草视频一区| 老司机午夜精品99久久| 久久91精品久久久久久秒播| 精品在线观看免费| 激情国产一区二区| 国产成人亚洲综合a∨婷婷图片| 韩日欧美一区二区三区| 国产成人综合网| av日韩在线网站| 在线中文字幕不卡| 欧美日韩色一区| 日韩视频免费观看高清完整版| 91精品国产一区二区三区蜜臀 | 精品国产免费一区二区三区香蕉 | 欧美三级中文字幕| 日韩一区二区在线看片| 久久综合999| 中文字幕亚洲综合久久菠萝蜜| 亚洲视频一区二区免费在线观看| 亚洲精品国久久99热| 日本一不卡视频| 成人免费视频免费观看| 91麻豆国产自产在线观看| 欧美日韩亚洲丝袜制服| 精品国产一区二区三区四区四| 国产精品久久久久久户外露出| 亚洲一区在线免费观看| 久热成人在线视频| 99久久精品国产麻豆演员表| 欧美亚洲禁片免费| 国产日韩欧美一区二区三区综合| 亚洲综合色自拍一区| 国产精品91一区二区| 欧美午夜精品理论片a级按摩| 精品国产三级电影在线观看| ●精品国产综合乱码久久久久| 亚洲18色成人| 蜜臀av在线播放一区二区三区| 麻豆精品一二三| 在线这里只有精品| 久久久久国产精品麻豆| 亚洲sss视频在线视频| 91影视在线播放| 亚洲国产成人午夜在线一区| 欧美在线观看一区| 在线观看日韩精品| 9i看片成人免费高清| 精品国产乱码久久久久久图片| 中文字幕乱码日本亚洲一区二区 | 精品成人在线观看| 亚洲成人免费影院|