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

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

?? gui_drawbitmap_888.c

?? UC_GUI開發源代碼,里面含有范例,源文件
?? C
字號:
/*
*********************************************************************************************************
*                                             uC/GUI V3.98
*                        Universal graphic software for embedded applications
*
*                       (c) Copyright 2002, Micrium Inc., Weston, FL
*                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
*              礐/GUI 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 redistributed
*              in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File        : LCD_DrawBitmap_888.c
Purpose     : Drawing routine for drawing a 16bpp bitmap
---------------------------END-OF-HEADER------------------------------
*/

#include <stddef.h>           /* needed for definition of NULL */
#include "GUI_Private.h"
#include "LCD_Private.h"

/*********************************************************************
*
*       Static code
*
**********************************************************************
*/
/*********************************************************************
*
*       _DrawBitmap
*/
static void _DrawBitmap(int x0, int y0, int xsize, int ysize, const U8 GUI_UNI_PTR * pPixel, const LCD_LOGPALETTE GUI_UNI_PTR * pLogPal, int xMag, int yMag, tLCDDEV_Index2Color * pfIndex2Color) {
  const U32 * pData;
  int y, OldIndex, Mag, BytesPerLine, UseDrawBitmap = 0;
  U32 PrevColor;
  GUI_USE_PARA(pLogPal);
  OldIndex = LCD_GetColorIndex();
  PrevColor = GUI_INVALID_COLOR;
  pData = (const U32 *)pPixel;
  Mag = (xMag | yMag);
  BytesPerLine = xsize * 4;
  /* Check if bitmaps color format fits to the current color conversion */
  if (Mag == 1) {
    #if GUI_SUPPORT_MEMDEV
    if (!GUI_Context.hDevData) {
    #else
    {
    #endif
      if (LCD_GetpfIndex2ColorEx(GUI_Context.SelLayer) == pfIndex2Color) {
        UseDrawBitmap = 1;
      }
    }
  }
  if (UseDrawBitmap) {
    LCD_DrawBitmap(x0, y0, xsize, ysize, 1, 1, 24, BytesPerLine, pPixel, 0);
  } else {
    if (Mag == 1) {
      /* Perform clipping */
      int x1, y1, Diff;
      y1 = y0 + ysize - 1;
      x1 = x0 + xsize - 1;
      /* Clip Y */
      if (y0 < GUI_Context.ClipRect.y0) {
        Diff = GUI_Context.ClipRect.y0 - y0;
        y0   = GUI_Context.ClipRect.y0;
        #if GUI_SUPPORT_LARGE_BITMAPS                       /* Required only for 16 bit CPUs if some bitmaps are >64kByte */
          pData += (U32)Diff * (U32)BytesPerLine / 4;
        #else
          pData += (unsigned)Diff * (unsigned)BytesPerLine / 4;
        #endif
        ysize -= Diff;
      }
      Diff = y1 - GUI_Context.ClipRect.y1;
      if (Diff > 0) {
        ysize -= Diff;
      }
      if (ysize <=0) {
		    return;
      }
      /* Clip right side */
      Diff = x1 - GUI_Context.ClipRect.x1;
      if (Diff > 0) {
        xsize -= Diff;
      }
      /* Clip left side */
      if (x0 < GUI_Context.ClipRect.x0) {
        Diff = GUI_Context.ClipRect.x0 - x0;
			  xsize -= Diff;
        pData += Diff; 
        x0 += Diff; 
      }
      if (xsize <=0) {
		    return;
      }
      /* Simple, unmagnified output using LCD_L0_SetPixel() */
      for (y = 0; y < ysize; y++) {
        int x;
        const U32 * p = pData;
        for (x = 0; x < xsize; x++) {
          U32 Color;
          Color = *p++;
          if (Color != PrevColor) {
            LCD_SetColor(pfIndex2Color(Color));
            PrevColor = Color;
          }
          LCDDEV_L0_SetPixelIndex(x + x0, y + y0, LCD_COLORINDEX);
        }
        pData += BytesPerLine / 4;
      }
    } else {
      /* Magnified output using LCD_FillRect() */
      int x,y;
      int yi;
      for (y = y0, yi = 0; yi < ysize; yi++, y += yMag, pPixel += BytesPerLine) {
        int yMax;
        yMax = y + yMag - 1;
        /* Draw if within clip area */
        if ((yMax >= GUI_Context.ClipRect.y0) && (y <= GUI_Context.ClipRect.y1)) {
          int xi;
          const U32 GUI_UNI_PTR * p = pData;
          for (x = x0, xi = 0; xi < xsize; xi++, x += xMag) {
            U32 Color;
            Color = *p++;
            if (Color != PrevColor) {
              LCD_SetColor(pfIndex2Color(Color));
              PrevColor = Color;
            }
            LCD_FillRect(x, y, x + xMag - 1, yMax);
          }
        }
        pData += BytesPerLine / 4;
      }
    }
    GUI_SetColorIndex(OldIndex);
  }
}

/*********************************************************************
*
*       _DrawBitmap_565
*/
static void _DrawBitmap_888(int x0, int y0, int xsize, int ysize, const U8 GUI_UNI_PTR * pPixel, const LCD_LOGPALETTE GUI_UNI_PTR * pLogPal, int xMag, int yMag) {
  _DrawBitmap(x0, y0, xsize, ysize, pPixel, pLogPal, xMag, yMag, GUI_BitmapMethods888.pfIndex2Color);
}

/*********************************************************************
*
*       _DrawBitmap_M565
*/
static void _DrawBitmap_M888(int x0, int y0, int xsize, int ysize, const U8 GUI_UNI_PTR * pPixel, const LCD_LOGPALETTE GUI_UNI_PTR * pLogPal, int xMag, int yMag) {
  _DrawBitmap(x0, y0, xsize, ysize, pPixel, pLogPal, xMag, yMag, GUI_BitmapMethodsM888.pfIndex2Color);
}

/*********************************************************************
*
*       Public data
*
**********************************************************************
*/
/*********************************************************************
*
*       GUI_BitmapMethods888
*/
const GUI_BITMAP_METHODS GUI_BitmapMethods888 = {
  _DrawBitmap_888,
  LCD_Index2Color_888
};

/*********************************************************************
*
*       GUI_BitmapMethodsM888
*/
const GUI_BITMAP_METHODS GUI_BitmapMethodsM888 = {
  _DrawBitmap_M888,
  LCD_Index2Color_M888
};

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色欧美日韩亚洲| 美国毛片一区二区三区| 国产免费观看久久| 欧美一区二区三区婷婷月色| 欧美日韩一区二区不卡| 欧美午夜一区二区| 91社区在线播放| 色婷婷国产精品综合在线观看| 色老汉一区二区三区| 色婷婷亚洲综合| 欧美精品丝袜中出| 精品噜噜噜噜久久久久久久久试看 | 欧美一区二区三区在线观看视频| 欧亚一区二区三区| 日韩欧美一级二级三级| 亚洲精品一区二区在线观看| 中文字幕第一区二区| 亚洲欧美日韩国产综合| 亚洲1区2区3区视频| 日韩激情一二三区| 国产成+人+日韩+欧美+亚洲| 91色婷婷久久久久合中文| 色综合中文字幕国产 | 99久久亚洲一区二区三区青草| www.一区二区| 欧美少妇性性性| 久久综合久久综合亚洲| 国产精品青草久久| 亚洲第一福利视频在线| 黄色成人免费在线| fc2成人免费人成在线观看播放| 欧美日韩在线精品一区二区三区激情 | 亚洲视频在线一区二区| 午夜欧美电影在线观看| 国内久久精品视频| 欧美性受极品xxxx喷水| 久久这里只有精品视频网| 亚洲视频香蕉人妖| 精品亚洲国产成人av制服丝袜 | 欧美日本在线观看| 久久久久久久久岛国免费| 亚洲午夜久久久久久久久久久| 经典一区二区三区| 精品视频在线免费看| 中文字幕乱码久久午夜不卡 | av成人免费在线观看| 欧美性一级生活| 久久精品视频在线免费观看 | 在线精品视频免费播放| 精品国产一区二区三区久久影院| 亚洲欧美一区二区三区久本道91 | 欧美中文字幕一区二区三区| 久久久久久久久久久久电影| 亚洲一区二区视频在线观看| 国产宾馆实践打屁股91| 欧美不卡激情三级在线观看| 亚洲精品成人精品456| 成人中文字幕电影| 久久综合九色综合欧美就去吻| 亚洲一区在线视频观看| 不卡一区在线观看| 中文字幕乱码日本亚洲一区二区| 免费成人美女在线观看.| 欧美日韩中文国产| 亚瑟在线精品视频| 91丝袜国产在线播放| 国产精品水嫩水嫩| 成人在线一区二区三区| 久久综合九色综合久久久精品综合| 日本欧美韩国一区三区| 欧美日韩精品免费| 亚洲一区二三区| 欧美日韩亚洲国产综合| 亚洲一区二区精品视频| 欧美伊人精品成人久久综合97| 亚洲人快播电影网| 91蜜桃传媒精品久久久一区二区| 国产精品乱人伦中文| 成人91在线观看| 悠悠色在线精品| 欧美日韩一区在线观看| 一区二区三区电影在线播| 欧美伊人精品成人久久综合97| 亚洲一区二区三区四区中文字幕| 日本韩国欧美一区| 亚洲第一成年网| 日韩视频在线永久播放| 青青草原综合久久大伊人精品| 日韩欧美视频一区| 国产成人精品免费网站| 国产精品女主播av| 欧美亚一区二区| 日本欧美一区二区| 国产色产综合色产在线视频| 高清不卡一区二区在线| 亚洲免费在线视频| 欧美人动与zoxxxx乱| 久久99精品国产麻豆不卡| 国产色综合久久| 欧美综合亚洲图片综合区| 日韩av网站在线观看| 欧美刺激午夜性久久久久久久| 国产福利91精品| 亚洲欧美日韩在线不卡| 日韩午夜激情视频| 9色porny自拍视频一区二区| 亚洲成人免费视| 精品国产三级电影在线观看| 成人aaaa免费全部观看| 日韩精品三区四区| 欧美国产日韩在线观看| 欧美日韩三级一区二区| 国产999精品久久久久久绿帽| 一区二区久久久| 久久久久亚洲蜜桃| 欧美日韩精品高清| 成人综合婷婷国产精品久久 | 亚洲国产精品麻豆| 欧美精品一区二区三| 欧美在线啊v一区| 国产1区2区3区精品美女| 日韩二区三区四区| 亚洲三级免费电影| 国产亚洲精品aa午夜观看| 在线欧美日韩国产| 96av麻豆蜜桃一区二区| 国产一区在线看| 日韩高清不卡一区二区| 一区二区三区蜜桃网| 欧美韩国日本一区| 精品国产91亚洲一区二区三区婷婷| 91看片淫黄大片一级在线观看| 国产在线一区二区| 免费精品视频在线| 亚洲午夜三级在线| 一区二区不卡在线播放| 亚洲婷婷国产精品电影人久久| 精品国产乱码久久久久久免费| 欧美剧在线免费观看网站| 日本韩国欧美在线| 99久久免费视频.com| 福利电影一区二区三区| 国产乱码精品一区二区三区五月婷| 亚洲va国产天堂va久久en| 亚洲精品ww久久久久久p站| 国产精品精品国产色婷婷| 国产亚洲一区二区三区在线观看 | 51久久夜色精品国产麻豆| 在线视频国产一区| 91麻豆国产福利精品| 91视频免费看| 不卡一区二区中文字幕| av一区二区三区四区| 成人免费视频caoporn| 丰满亚洲少妇av| 成人的网站免费观看| 成人av网在线| 色综合久久88色综合天天| 99视频精品全部免费在线| av影院午夜一区| 欧美探花视频资源| 欧美日韩国产首页| 日韩视频一区二区三区| 精品国内二区三区| 久久精品视频网| 亚洲日本一区二区| 亚洲成人在线免费| 久久精品国产久精国产| 国产一区中文字幕| 99久久er热在这里只有精品66| 91黄色免费版| 日韩女优毛片在线| 日本一二三四高清不卡| 综合亚洲深深色噜噜狠狠网站| 亚洲欧美偷拍三级| 亚洲午夜国产一区99re久久| 男男视频亚洲欧美| 精彩视频一区二区三区| 国产精品亚洲а∨天堂免在线| 成人avav在线| 欧美日韩一级片网站| 精品理论电影在线| 中文字幕一区二区在线播放| 日日夜夜免费精品| 国产大陆亚洲精品国产| 色天使久久综合网天天| 69精品人人人人| 国产精品女同一区二区三区| 丝袜脚交一区二区| 成人蜜臀av电影| 337p亚洲精品色噜噜噜| 中文字幕av一区二区三区高| 五月天久久比比资源色| 成人黄色综合网站| 91精品国产综合久久蜜臀| 中文字幕日韩一区| 国产一区欧美日韩| 欧美日本一区二区在线观看| 中文字幕在线观看不卡视频| 久久国产精品露脸对白|