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

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

?? gui_bmp.lst

?? Keil C下通過的UCGUI,UCGUI的移植源代碼
?? LST
字號:
C51 COMPILER V8.05a   GUI_BMP                                                              04/11/2008 14:18:26 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE GUI_BMP
OBJECT MODULE PLACED IN GUI_BMP.obj
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE gui\Core\GUI_BMP.c LARGE BROWSE MDU_F120 DEBUG OBJECTEXTEND P
                    -RINT(.\GUI_BMP.lst) OBJECT(GUI_BMP.obj)

line level    source

   1          /*
   2          *********************************************************************************************************
   3          *                                                uC/GUI
   4          *                        Universal graphic software for embedded applications
   5          *
   6          *                       (c) Copyright 2002, Micrium Inc., Weston, FL
   7          *                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
   8          *
   9          *              礐/GUI is protected by international copyright laws. Knowledge of the
  10          *              source code may not be used to write a similar product. This file may
  11          *              only be used in accordance with a license and should not be redistributed
  12          *              in any way. We appreciate your understanding and fairness.
  13          *
  14          ----------------------------------------------------------------------
  15          File        : GUI_BMP.c
  16          Purpose     : Implementation of GUI_BMP... functions
  17          ---------------------------END-OF-HEADER------------------------------
  18          */
  19          
  20          #include <math.h>
  21          
  22          #include "gui\Core\GUI_Private.h"
  23          
  24          /*********************************************************************
  25          *
  26          *       Static functions
  27          *
  28          **********************************************************************
  29          */
  30          
  31          static int _GetStep(int * pYSize, int * pY) {
  32   1        if (*pYSize > 0) {
  33   2          *pY = *pYSize - 1;
  34   2          return -1;
  35   2        } else if (*pYSize < 0) {
  36   2          *pYSize = -*pYSize;
  37   2          *pY = 0;
  38   2          return 1;
  39   2        } else {
  40   2          return 0;
  41   2        }
  42   1      }
  43          
  44          static int _DrawBitmap_Pal(const U8 * pData, int x0, int y0, int XSize, int YSize, int Bpp, int NumColors)
             - {
  45   1        int i, y, BytesPerLine, Step;
  46   1        Step = _GetStep(&YSize, &y);
  47   1        if (!Step) {
  48   2          return 1;
  49   2        }
  50   1        for (i = 0; i < NumColors; i++) {
  51   2          U8 r, g, b;
  52   2          b = *(pData);
  53   2          g = *(pData + 1);
C51 COMPILER V8.05a   GUI_BMP                                                              04/11/2008 14:18:26 PAGE 2   

  54   2          r = *(pData + 2);
  55   2          pData += 4;
  56   2          LCD__aConvTable[i] = LCD_Color2Index((b << 16) | (g << 8) | r);
  57   2        }
  58   1        switch (Bpp) {
  59   2          case 1:
  60   2            BytesPerLine = ((XSize + 31) >> 5) << 2;
  61   2            break;
  62   2          case 4:
  63   2            BytesPerLine = (((XSize << 2) + 31) >> 5) << 2;
  64   2            break;
  65   2          case 8:
  66   2            BytesPerLine = ((XSize +  3) >> 2) << 2;
  67   2            break;
  68   2        }
  69   1        for (; (y < YSize) && (y >= 0); y += Step) {
  70   2          LCD_DrawBitmap(x0, y0 + y, XSize, 1, 1, 1, Bpp, XSize, pData, LCD__aConvTable);
  71   2          pData += BytesPerLine;
  72   2        }
  73   1        return 0;
  74   1      }
  75          
  76          static int _DrawBitmap_24bpp(const U8 * pData, int x0, int y0, int XSize, int YSize) {
  77   1        int x, y, BytesPerLine, Step;
  78   1        Step = _GetStep(&YSize, &y);
  79   1        if (!Step) {
  80   2          return 1;
  81   2        }
  82   1        BytesPerLine = ((24 * XSize + 31) >> 5) << 2;
  83   1        for (; (y < YSize) && (y >= 0); y += Step) {
  84   2          for (x = 0; x < XSize; x++) {
  85   3            const U8 * pColor = pData + 3 * x;
  86   3            U8 r, g, b;
  87   3            b = *(pColor);
  88   3            g = *(pColor + 1);
  89   3            r = *(pColor + 2);
  90   3            LCD_SetPixelIndex(x0 + x, y0 + y, LCD_Color2Index((b << 16) | (g << 8) | r));
  91   3          }
  92   2          pData += BytesPerLine;
  93   2        }
  94   1        return 0;
  95   1      }
  96          
  97          static U16 _Read16(U8 ** ppData) {
  98   1        U8 * pData = *ppData;
  99   1        U16 Value = *pData;
 100   1        Value |= (U16)(*(pData + 1) << 8);
 101   1        pData += 2;
 102   1        *ppData = pData;
 103   1        return Value;
 104   1      }
 105          
 106          static U32 _Read32(U8 ** ppData) {
 107   1        U8 * pData = *ppData;
 108   1        U32 Value = *pData;
 109   1        Value |= (U32)(*(pData + 1) << 8);
 110   1        Value |= (U32)(*(pData + 2) << 16);
 111   1        Value |= (U32)(*(pData + 3) << 24);
 112   1        pData += 4;
 113   1        *ppData = pData;
 114   1        return Value;
 115   1      }
C51 COMPILER V8.05a   GUI_BMP                                                              04/11/2008 14:18:26 PAGE 3   

 116          
 117          /*********************************************************************
 118          *
 119          *       GUI_BMP_GetXSize
 120          *
 121          **********************************************************************
 122          */
 123          int GUI_BMP_GetXSize(const void * pBMP) {
 124   1        U8 * pSrc = (U8 *)pBMP;
 125   1        if (!pBMP) {
 126   2          return 0;
 127   2        }
 128   1        pSrc += 18;                   /* skip rest of BITMAPFILEHEADER */
 129   1        return _Read32(&pSrc);
 130   1      }
 131          
 132          /*********************************************************************
 133          *
 134          *       GUI_BMP_GetXSize
 135          *
 136          **********************************************************************
 137          */
 138          int GUI_BMP_GetYSize(const void * pBMP) {
 139   1        U8 * pSrc = (U8 *)pBMP;
 140   1        if (!pBMP) {
 141   2          return 0;
 142   2        }
 143   1        pSrc += 22;
 144   1        return abs(_Read32(&pSrc));
 145   1      }
 146          
 147          /*********************************************************************
 148          *
 149          *       GUI_BMP_Draw
 150          *
 151          **********************************************************************
 152          */
 153          
 154          int GUI_BMP_Draw(const void * pBMP, int x0, int y0) {
 155   1        #if (GUI_WINSUPPORT)
                  GUI_RECT r;
                #endif
 158   1        int Ret;
 159   1        I32 Width, Height;
 160   1        U16 BitCount, Type;
 161   1        U32 ClrUsed, Compression;
 162   1        int NumColors;
 163   1        U8 * pSrc = (U8 *)pBMP;
 164   1        Type        = _Read16(&pSrc); /* get type from BITMAPFILEHEADER */
 165   1        pSrc += 12;                   /* skip rest of BITMAPFILEHEADER */
 166   1        /* get values from BITMAPINFOHEADER */
 167   1        pSrc += 4;
 168   1        Width       = _Read32(&pSrc);
 169   1        Height      = _Read32(&pSrc);
 170   1        pSrc += 2;
 171   1        BitCount    = _Read16(&pSrc);
 172   1        Compression = _Read32(&pSrc);
 173   1        pSrc += 12;
 174   1        ClrUsed     = _Read32(&pSrc);
 175   1        pSrc += 4;
 176   1        /* calculate number of colors */
 177   1        switch (BitCount) {
C51 COMPILER V8.05a   GUI_BMP                                                              04/11/2008 14:18:26 PAGE 4   

 178   2          case 0:   return 1; /* biBitCount = 0 (JPEG format) not supported. Please convert image ! */
 179   2          case 1:   NumColors = 2;   break;
 180   2          case 4:   NumColors = 16;  break;
 181   2          case 8:   NumColors = 256; break;
 182   2          case 24:  NumColors = 0;   break;
 183   2          default:
 184   2            return 1; /* biBitCount should be 1, 4, 8 or 24 */
 185   2        }
 186   1        if (NumColors && ClrUsed) {
 187   2          NumColors = ClrUsed;
 188   2        }
 189   1        /* check validity of bmp */
 190   1        if ((NumColors > LCD_MAX_LOG_COLORS) ||
 191   1            (Type != 0x4d42)                 || /* 'BM' */
 192   1            (Compression)                    || /* only uncompressed bitmaps */
 193   1            (Width  > 1024)                  ||
 194   1            (Height > 1024)) {
 195   2          return 1;
 196   2        }
 197   1        /* start output */
 198   1        GUI_LOCK();
 199   1        #if (GUI_WINSUPPORT)
                  WM_ADDORG(x0,y0);
                  r.x1 = (r.x0 = x0) + Width - 1;
                  r.y1 = (r.y0 = y0) + Height - 1;
                  WM_ITERATE_START(&r) {
                #endif
 205   1        /* Show bitmap */
 206   1        switch (BitCount) {
 207   2          case 1:
 208   2          case 4:
 209   2          case 8:
 210   2            Ret = _DrawBitmap_Pal(pSrc, x0, y0, Width, Height, BitCount, NumColors);
 211   2            break;
 212   2          case 24:
 213   2            Ret = _DrawBitmap_24bpp(pSrc, x0, y0, Width, Height);
 214   2            break;
 215   2        }
 216   1        #if (GUI_WINSUPPORT)
                  } WM_ITERATE_END();
                #endif
 219   1        GUI_UNLOCK();
 220   1        return Ret;
 221   1      }
 222          
 223          
 224          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2202    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----     118
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日日摸夜夜添夜夜添国产精品| 国产肉丝袜一区二区| 国产精品正在播放| 亚洲网友自拍偷拍| 久久影音资源网| 欧美亚洲日本一区| 大桥未久av一区二区三区中文| 视频一区欧美精品| 亚洲人成网站色在线观看| 欧美精品一区二区三区蜜桃视频 | 91在线porny国产在线看| 久久爱www久久做| 一区二区三区四区中文字幕| 久久久久久久综合色一本| 欧美三级视频在线播放| 91小视频免费看| 国产伦理精品不卡| 久久综合综合久久综合| 偷拍日韩校园综合在线| 亚洲最大成人网4388xx| 中文字幕精品综合| 精品久久国产字幕高潮| 91精品欧美福利在线观看| 欧美在线一二三四区| 色一情一乱一乱一91av| 成人免费电影视频| 国产精品自拍毛片| 国产在线麻豆精品观看| 日韩成人精品在线观看| 亚洲成av人影院在线观看网| 亚洲精品福利视频网站| 国产精品白丝在线| 国产精品理论在线观看| 国产欧美一区二区三区网站| 久久综合九色欧美综合狠狠| 精品处破学生在线二十三| 日韩欧美电影一二三| 日韩免费高清视频| 欧美一区二区久久| 日韩欧美一二三四区| 日韩视频在线你懂得| 欧美不卡一区二区| www激情久久| 久久久精品中文字幕麻豆发布| 久久婷婷成人综合色| 国产欧美一区二区精品性色| 欧美国产精品一区| 亚洲欧美怡红院| 亚洲黄色av一区| 亚洲成av人片www| 日本一不卡视频| 久久99精品久久久久| 国产精品99久久久久久似苏梦涵 | 成人成人成人在线视频| 成人福利电影精品一区二区在线观看| 国v精品久久久网| 91亚洲资源网| 欧美午夜片在线观看| 欧美一区二区三区在线电影| 久久综合狠狠综合久久综合88| 中文字幕成人av| 亚洲综合在线视频| 日本欧美加勒比视频| 国产一区中文字幕| 成人免费视频视频| 91福利社在线观看| 欧美一区二区在线观看| 国产日产亚洲精品系列| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲线精品一区二区三区| 日韩电影一二三区| 国产高清不卡一区二区| 91视频在线观看免费| 91精品国产乱码久久蜜臀| 精品国产自在久精品国产| 国产精品久久久久久久蜜臀| 亚洲国产精品一区二区久久恐怖片 | 99re这里都是精品| 91国在线观看| 欧美v国产在线一区二区三区| 国产精品成人网| 日本中文在线一区| 成人v精品蜜桃久久一区| 欧美日韩在线观看一区二区| 久久精品亚洲精品国产欧美| 亚洲影视资源网| 国产又粗又猛又爽又黄91精品| 色噜噜狠狠色综合欧洲selulu| 日韩欧美国产午夜精品| 亚洲男人电影天堂| 国产精品一二三四| 欧美日韩国产另类不卡| 国产精品国产三级国产普通话99| 日本在线不卡一区| 91丨国产丨九色丨pron| 精品久久久久久久久久久院品网 | 国产精品一区二区三区乱码| 91国偷自产一区二区开放时间| 26uuu精品一区二区三区四区在线| 亚洲欧美日韩综合aⅴ视频| 久久综合综合久久综合| 欧美亚洲一区二区三区四区| 国产欧美一区二区精品婷婷| 日韩电影在线一区| 欧美性色黄大片| 亚洲欧洲一区二区在线播放| 国产麻豆一精品一av一免费| 欧美日韩aaaaa| 亚洲欧美日韩在线| 成人午夜短视频| 久久久欧美精品sm网站| 日产国产高清一区二区三区| 91福利在线免费观看| 国产欧美精品一区二区三区四区| 蜜臀av一区二区| 欧美日韩国产首页| 亚洲精品久久久蜜桃| 北条麻妃国产九九精品视频| 久久久99精品免费观看不卡| 久久99精品国产.久久久久久| 欧美日韩一级片在线观看| 亚洲综合久久av| 色av一区二区| 亚洲另类春色校园小说| 91亚洲大成网污www| 国产精品久久久久婷婷| 国产91精品免费| 国产日韩综合av| 国产成人在线免费| 久久久久久久久久久久久女国产乱| 久久精品国产免费看久久精品| 日韩一级在线观看| 日本一不卡视频| 日韩精品一区二区三区在线观看| 日本亚洲天堂网| 日韩欧美中文字幕精品| 久久av老司机精品网站导航| 精品黑人一区二区三区久久| 久久国产精品一区二区| 精品免费国产二区三区| 国产在线精品一区二区不卡了| 欧美va亚洲va香蕉在线| 国内成+人亚洲+欧美+综合在线| 精品国产91洋老外米糕| 国产又黄又大久久| 国产精品少妇自拍| 色成人在线视频| 午夜国产不卡在线观看视频| 欧美久久久久久蜜桃| 毛片不卡一区二区| 精品久久久影院| 成人h动漫精品一区二区| 亚洲欧洲成人精品av97| 91高清在线观看| 青青草97国产精品免费观看无弹窗版| 欧美α欧美αv大片| 国产成人午夜视频| 亚洲欧美日韩精品久久久久| 精品视频一区二区不卡| 麻豆一区二区在线| 亚洲国产精品激情在线观看| 91在线视频免费观看| 日韩电影在线免费| 国产亚洲欧洲997久久综合| av午夜一区麻豆| 亚洲bt欧美bt精品777| 日韩视频一区二区在线观看| 成人永久看片免费视频天堂| 亚洲精品免费一二三区| 欧美一区二区三区影视| 风流少妇一区二区| 亚洲高清免费在线| 久久毛片高清国产| 91黄视频在线| 激情综合色丁香一区二区| 成人免费在线观看入口| 日韩一级成人av| 色婷婷久久久亚洲一区二区三区 | 久久九九99视频| 欧美性猛交xxxxxx富婆| 激情小说欧美图片| 亚洲精品国产精华液| 精品久久久久一区二区国产| 91久久精品一区二区二区| 久久成人av少妇免费| 一区二区在线观看av| 久久综合狠狠综合久久综合88| 91麻豆.com| 国产精品自拍av| 日本中文字幕一区| 亚洲精选一二三| 久久久国产午夜精品| 欧美剧在线免费观看网站| 99久久精品免费看国产 | 色综合久久久久久久久久久| 精一区二区三区| 一区二区三区精品在线| 国产三级欧美三级| 欧美α欧美αv大片| 欧美日韩一区二区三区在线 |