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

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

?? gui_drawbitmapex.c

?? UC_GUI開發(fā)源代碼,里面含有范例,源文件
?? C
字號:
/*********************************************************************
*                SEGGER MICROCONTROLLER SYSTEME GmbH                 *
*        Solutions for real time microcontroller applications        *
**********************************************************************
*                                                                    *
*        (c) 1996 - 2004  SEGGER Microcontroller Systeme GmbH        *
*                                                                    *
*        Internet: www.segger.com    Support:  support@segger.com    *
*                                                                    *
**********************************************************************

***** emWin - Graphical user interface for embedded applications *****
emWin is protected by international copyright laws.   Knowledge of the
source code may not be used to write a similar product.  This file may
only be used in accordance with a license and should not be re-
distributed in any way. We appreciate your understanding and fairness.
----------------------------------------------------------------------
File        : GUI_DrawBitmapEx.c
Purpose     : Draws a bitmap with free magnification
---------------------------END-OF-HEADER------------------------------
*/

#include "GUI_Private.h"
#include "stdlib.h"

/*********************************************************************
*
*       static code
*
**********************************************************************
*/
/*********************************************************************
*
*       GL_DrawBitmapEx
*/
static void GL_DrawBitmapEx(const GUI_BITMAP GUI_UNI_PTR * pBitmap, int x0, int y0,
                            int xCenter, int yCenter, int xMag, int yMag) {
  LCD_PIXELINDEX Index, IndexPrev = 0;
  LCD_COLOR Color;
  int x, y, xi, yi, xSize, ySize, xAct, xStart, xMagAbs, xiMag, yMin, yMax, yEnd, yPrev, yStep;
  char Cached, HasTrans = 0;
  /* Use clipping rect to reduce calculation */
  yMin = GUI_Context.ClipRect.y0;
  yMax = GUI_Context.ClipRect.y1;
  /* Init some values */
  xSize    = pBitmap->XSize;
  ySize    = pBitmap->YSize;
  xMagAbs  = ((xMag < 0) ? -xMag : xMag);
  x0      -= (I32)((xMag < 0) ? xSize - xCenter - 1 : xCenter) * (I32)(xMagAbs) / (I32)(1000);
  yEnd     = y0 + GUI__DivideRound32(((I32)(-yCenter) * (I32)(yMag)), 1000);
  yPrev    = yEnd + 1;
  yStep = (yMag < 0) ? -1 : 1;
  if (pBitmap->pPal) {
    if (pBitmap->pPal->HasTrans) {
      HasTrans = 1;
    }
  }
  for (yi = 0; yi < ySize; yi++) {
    y = yEnd;
    yEnd = y0 + GUI__DivideRound32(((I32)(yi + 1 - yCenter) * (I32)(yMag)), 1000);
    if (y != yPrev) {
      yPrev = y;
      do {
        if ((y >= yMin) && (y <= yMax)) {
          xStart = -1;
          x      =  0;
          xiMag  =  0;
          Cached =  0;
          for (xi = 0; xi < xSize; xi++) {
            xiMag += xMagAbs;
            if (xiMag >= 1000) {
              xAct  = (xMag > 0) ? xi : xSize - xi - 1;
              Index = GUI_GetBitmapPixelIndex(pBitmap, xAct, yi);
              if (Index != IndexPrev || xStart == -1) {
                if ((Index == 0) && HasTrans) {
                  /* Transparent color ... clear cache */
                  if (Cached) {
                    LCD_DrawHLine(x0 + xStart, y, x0 + x - 1);
                    Cached = 0;
                  }
                } else {
                  /* Another color ... draw contents of cache */
                  if (Cached && xStart != -1) {
                    LCD_DrawHLine(x0 + xStart, y, x0 + x - 1);
                  }
                  xStart    = x;
                  Cached    = 1;
                  if (pBitmap->pMethods) {
                    Color = pBitmap->pMethods->pfIndex2Color(Index);
                  } else {
                    if (pBitmap->pPal->pPalEntries) {
                      Color = pBitmap->pPal->pPalEntries[Index];
                    } else {
                      Color = LCDDEV_L0_Index2Color(Index);
                    }
                  }
                  LCD_SetColorIndex(LCDDEV_L0_Color2Index(Color));
                }
                IndexPrev = Index;
              }
              do {
                x++;
                xiMag -= 1000;
              } while (xiMag >= 1000);
            }
          }
          /* Clear cache */
          if (Cached) {
            LCD_DrawHLine(x0 + xStart, y, x0 + x - 1);
          }
        }
        y += yStep;
      } while ((yMag < 0) ? (y > yEnd) : (y < yEnd));
    }
  }
}

/*********************************************************************
*
*       public code
*
**********************************************************************
*/
/*********************************************************************
*
*       GUI_DrawBitmapEx
*/
void GUI_DrawBitmapEx(const GUI_BITMAP GUI_UNI_PTR * pBitmap, int x0, int y0,
                      int xCenter, int yCenter, int xMag, int yMag) {
  int OldIndex;
  #if (GUI_WINSUPPORT)
    GUI_RECT r;
  #endif
  GUI_LOCK();
  OldIndex = LCD_GetColorIndex();
  #if (GUI_WINSUPPORT)
    WM_ADDORG(x0, y0);
    if (xMag >= 0) {
      r.x0 = x0 + GUI__DivideRound32(((I32)(-xCenter) * (I32)(xMag)), 1000);
      r.x1 = x0 + GUI__DivideRound32(((I32)(pBitmap->XSize - xCenter - 1) * (I32)(xMag)), 1000);
    } else {
      r.x1 = x0 + GUI__DivideRound32(((I32)(-xCenter) * (I32)(xMag)), 1000);
      r.x0 = x0 + GUI__DivideRound32(((I32)(pBitmap->XSize - xCenter - 1) * (I32)(xMag)), 1000);
    }
    if (yMag >= 0) {
      r.y0 = y0 + GUI__DivideRound32(((I32)(-yCenter) * (I32)(yMag)), 1000);
      r.y1 = y0 + GUI__DivideRound32(((I32)(pBitmap->YSize - yCenter - 1) * (I32)(yMag)), 1000);
    } else {
      r.y1 = y0 + GUI__DivideRound32(((I32)(-yCenter) * (I32)(yMag)), 1000);
      r.y0 = y0 + GUI__DivideRound32(((I32)(pBitmap->YSize - yCenter - 1) * (I32)(yMag)), 1000);
    }
    WM_ITERATE_START(&r) {
  #endif
  GL_DrawBitmapEx(pBitmap, x0, y0, xCenter, yCenter, xMag, yMag);
  #if (GUI_WINSUPPORT)
    } WM_ITERATE_END();
  #endif
  LCD_SetColorIndex(OldIndex);
  GUI_UNLOCK();
}

/*************************** End of file ****************************/
	 	 			 		    	 				 	  			   	 	 	 	 	 	  	  	      	   		 	 	 		  		  	 		 	  	  			     			       	   	 			  		    	 	     	 				  	 					 	 			   	  	  			 				 		 	 	 			     			 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91精品久久久久久久网曝门 | 久久综合九色综合97婷婷| 久久久久久久久久久久久久久99| 一区二区三区国产精华| 国产精品99久久久久久似苏梦涵| 欧美日韩高清一区二区| 国产精品久久久久久久久免费相片 | 国产亚洲制服色| 日本aⅴ亚洲精品中文乱码| 成人av在线资源| 久久综合狠狠综合久久综合88| 亚洲综合久久av| 91蜜桃网址入口| 国产精品嫩草影院av蜜臀| 精品在线免费视频| 欧美一级理论片| 偷拍亚洲欧洲综合| 欧洲av在线精品| 亚洲一区二区3| 欧洲亚洲国产日韩| 一片黄亚洲嫩模| 日本福利一区二区| 亚洲精品欧美综合四区| 91美女精品福利| 亚洲精品第1页| 色欧美88888久久久久久影院| 中文欧美字幕免费| 99亚偷拍自图区亚洲| 国产精品电影院| 色欧美日韩亚洲| 亚洲第一福利一区| 91麻豆精品国产| 蜜臀av一区二区在线免费观看| 欧美一区二区三区思思人| 日本午夜一区二区| 久久综合久久综合亚洲| 国产综合色产在线精品| 国产欧美日韩三区| 91在线精品一区二区| 亚洲免费视频中文字幕| 欧美亚洲尤物久久| 日韩高清不卡在线| 26uuu色噜噜精品一区| 国产69精品久久99不卡| 亚洲男人的天堂在线aⅴ视频| 91蝌蚪porny九色| 亚洲一区二区精品3399| 欧美美女一区二区在线观看| 日韩国产精品久久久| 久久久久久久久久久久久久久99 | 国产伦理精品不卡| 日本一二三不卡| yourporn久久国产精品| 26uuu精品一区二区在线观看| 国产99久久久国产精品 | ㊣最新国产の精品bt伙计久久| 99热国产精品| 日韩电影网1区2区| 久久久777精品电影网影网| 一本色道久久综合狠狠躁的推荐| 亚洲电影一级片| 国产农村妇女毛片精品久久麻豆| 色婷婷av一区二区三区软件| 日本怡春院一区二区| 国产精品午夜在线| 欧美肥妇free| 成人av影视在线观看| 丝袜美腿成人在线| 国产精品入口麻豆原神| 91精品一区二区三区久久久久久 | 日韩午夜电影在线观看| 国产999精品久久| 午夜亚洲福利老司机| 国产欧美一区二区三区鸳鸯浴 | 久久久一区二区三区| 欧美伊人久久久久久久久影院| 国产乱对白刺激视频不卡| 亚洲一区二区精品久久av| 欧美韩国日本综合| 日韩欧美激情一区| 在线亚洲+欧美+日本专区| 国产揄拍国内精品对白| 天堂av在线一区| 亚洲精品精品亚洲| 国产精品天美传媒沈樵| 日韩三级.com| 欧美群妇大交群的观看方式| 99国产麻豆精品| 懂色av噜噜一区二区三区av| 麻豆91精品91久久久的内涵| 亚洲午夜精品在线| 亚洲人成在线观看一区二区| 国产喂奶挤奶一区二区三区| 精品精品欲导航| 欧美刺激午夜性久久久久久久| 欧美三级中文字| 91国产福利在线| 色哦色哦哦色天天综合| 91在线视频播放| av在线不卡免费看| 国产成人夜色高潮福利影视| 韩国欧美国产一区| 国产一区二区精品在线观看| 精品一区二区三区影院在线午夜| 蜜臀av一级做a爰片久久| 天天色天天爱天天射综合| 亚洲第一成年网| 亚洲第一综合色| 午夜欧美一区二区三区在线播放| 亚洲一区在线观看视频| 亚洲小说春色综合另类电影| 一区二区三区美女视频| 亚洲精品水蜜桃| 亚洲成人免费观看| 亚洲图片欧美色图| 五月综合激情日本mⅴ| 亚洲va国产va欧美va观看| 午夜精品在线视频一区| 天堂av在线一区| 久久国产剧场电影| 韩国av一区二区三区| 国产尤物一区二区在线| 国产91露脸合集magnet| 99视频在线精品| 欧美日韩亚洲不卡| 日韩精品中文字幕在线不卡尤物| 精品福利一区二区三区| 国产清纯在线一区二区www| 国产精品久久久久婷婷二区次| 尤物在线观看一区| 日韩av一二三| 丰满少妇在线播放bd日韩电影| 99热精品一区二区| 欧美日韩午夜影院| 久久一二三国产| 亚洲色图20p| 免费在线观看视频一区| 国产成+人+日韩+欧美+亚洲| 91成人免费电影| 欧美mv日韩mv亚洲| 中文字幕日韩av资源站| 天天综合天天综合色| 国产精品一级在线| 在线亚洲欧美专区二区| 精品久久久久久久久久久院品网 | 精品国产免费一区二区三区香蕉| 国产女主播一区| 午夜久久久久久久久| 国产成人午夜精品影院观看视频| 99热精品一区二区| 欧美大片在线观看一区| 国产精品污污网站在线观看| 亚洲第一狼人社区| 成人一级片网址| 日韩三级在线观看| 亚洲免费观看在线视频| 国内久久精品视频| 欧美三级中文字幕在线观看| 国产无遮挡一区二区三区毛片日本| 玉米视频成人免费看| 国产精品亚洲一区二区三区妖精| 日本高清不卡视频| 国产精品天天看| 激情欧美日韩一区二区| 欧美亚洲国产一区二区三区va| 久久美女艺术照精彩视频福利播放| 亚洲综合丁香婷婷六月香| 国产精品1区2区3区| 欧美精品tushy高清| 亚洲日本va在线观看| 国产成a人亚洲精| 精品国产亚洲在线| 视频在线在亚洲| 日本韩国欧美国产| 中文字幕中文乱码欧美一区二区 | 久久精品男人天堂av| 日韩不卡免费视频| 在线观看视频欧美| 综合激情网...| 成人免费视频一区| 国产欧美一区二区精品秋霞影院| 午夜激情综合网| 欧美日免费三级在线| 亚洲黄色小视频| 色婷婷综合五月| 亚洲私人影院在线观看| 成人免费高清视频在线观看| 久久久精品日韩欧美| 乱中年女人伦av一区二区| 欧美一区二区三区免费在线看 | 国产高清精品网站| 久久久久久日产精品| 激情综合五月天| 精品欧美乱码久久久久久1区2区| 免费在线观看成人| 欧美成人一区二区| 国内精品久久久久影院薰衣草| 精品国产乱码久久久久久蜜臀| 美脚の诱脚舐め脚责91| 日韩欧美国产麻豆|