亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
中文字幕一区二| 亚洲色图视频网| 99久久99久久精品免费观看 | 国产精品理论在线观看| 在线观看欧美日本| 国产精品一级黄| 亚洲成人av中文| 国产精品私人影院| 欧美一级二级三级乱码| 色婷婷国产精品| 国产乱码精品一区二区三区忘忧草| 欧美亚洲一区二区在线观看| 56国语精品自产拍在线观看| 国产伦精品一区二区三区免费迷 | 日韩精品电影一区亚洲| 欧美激情在线看| 7777精品伊人久久久大香线蕉的| 成人免费的视频| 精品影院一区二区久久久| 亚洲图片一区二区| 中文字幕亚洲不卡| 久久久综合网站| 欧美一区二区三区日韩| 欧洲视频一区二区| 不卡的电视剧免费网站有什么| 麻豆视频一区二区| 亚洲妇女屁股眼交7| 亚洲美女一区二区三区| 欧美国产综合色视频| 久久亚洲一区二区三区四区| 欧美精品久久一区| 亚洲欧洲综合另类| 蜜桃91丨九色丨蝌蚪91桃色| 1024亚洲合集| 久久免费国产精品| 欧美一级淫片007| 911精品产国品一二三产区| 色哟哟一区二区在线观看| 风间由美性色一区二区三区| 国产精品自拍毛片| 精品综合免费视频观看| 日本欧洲一区二区| 全国精品久久少妇| 日韩高清一区二区| 男人操女人的视频在线观看欧美| 肉丝袜脚交视频一区二区| 亚洲成人精品一区二区| 亚洲图片自拍偷拍| 亚洲成人免费av| 丝袜美腿高跟呻吟高潮一区| 日本美女一区二区三区视频| 日本亚洲最大的色成网站www| 日韩在线一区二区三区| 日韩精彩视频在线观看| 免费成人小视频| 久久se精品一区二区| 国产在线乱码一区二区三区| 国产精品一二三四区| 成人综合在线观看| 91精品国产色综合久久不卡电影 | 最新日韩在线视频| 亚洲精选视频在线| 亚洲一区二区偷拍精品| 日本午夜一本久久久综合| 美国精品在线观看| 国产精品夜夜嗨| 99re视频精品| 欧美日韩一区不卡| 精品国产一区二区精华| 国产欧美视频在线观看| 综合中文字幕亚洲| 亚洲国产精品一区二区尤物区| 天天做天天摸天天爽国产一区| 奇米影视在线99精品| 国产精一区二区三区| 成a人片国产精品| 欧美中文字幕一区| 日韩欧美色综合| 国产精品人成在线观看免费| 樱桃视频在线观看一区| 轻轻草成人在线| 成人动漫一区二区三区| 欧美私人免费视频| www久久精品| 亚洲男人的天堂一区二区| 欧美放荡的少妇| 韩国一区二区视频| 成人深夜视频在线观看| 欧美亚洲综合网| xfplay精品久久| 一区二区三区久久| 国产米奇在线777精品观看| 99re8在线精品视频免费播放| 欧美精品粉嫩高潮一区二区| 日本一区二区三区在线不卡| 亚洲午夜av在线| 国产成人一区在线| 欧美人牲a欧美精品| 欧美激情综合在线| 日韩二区在线观看| 成人h动漫精品| 日韩三级免费观看| 亚洲码国产岛国毛片在线| 极品尤物av久久免费看| 在线观看亚洲专区| 欧美国产日韩亚洲一区| 麻豆成人免费电影| 欧美自拍偷拍午夜视频| 日本一区二区综合亚洲| 青青青爽久久午夜综合久久午夜| 99亚偷拍自图区亚洲| 精品国产免费视频| 午夜成人免费电影| 色8久久人人97超碰香蕉987| 国产亲近乱来精品视频| 久久国产精品99久久久久久老狼 | 欧美高清性hdvideosex| 国产精品福利av| 日韩欧美aaaaaa| 中文在线资源观看网站视频免费不卡| 亚洲18色成人| 日本高清免费不卡视频| 国产欧美一区二区在线| 久久97超碰色| 欧美一区二区黄色| 亚洲午夜一区二区| 日本韩国精品一区二区在线观看| 中文字幕不卡一区| 国产99久久久久| 久久久蜜臀国产一区二区| 精品一区二区免费视频| 日韩精品在线一区二区| 日本欧美一区二区| 91精品国产黑色紧身裤美女| 亚洲国产精品久久人人爱蜜臀 | 欧美经典一区二区三区| 国产在线观看免费一区| 91精品国产综合久久婷婷香蕉| 亚洲电影第三页| 欧美午夜精品免费| 亚洲国产成人va在线观看天堂| 91在线看国产| 伊人色综合久久天天人手人婷| 成人福利视频网站| 中文字幕一区二区日韩精品绯色| 国产高清在线精品| 国产精品麻豆视频| 成人深夜在线观看| 亚洲欧洲性图库| 色综合久久天天| 一区二区激情小说| 欧美精品一级二级三级| 日韩成人一区二区| 精品理论电影在线观看| 精品在线免费观看| 中文一区在线播放| 91蜜桃免费观看视频| 亚洲尤物视频在线| 这里只有精品99re| 国内久久婷婷综合| 国产精品久久久久婷婷| 一本一本大道香蕉久在线精品 | 亚洲午夜一二三区视频| 51久久夜色精品国产麻豆| 久久超级碰视频| 国产精品无遮挡| 91福利视频网站| 免费成人av在线| 国产日产欧美精品一区二区三区| 91在线视频免费观看| 午夜视频在线观看一区二区三区| 日韩欧美一级片| 成人av影院在线| 午夜电影网亚洲视频| 久久久久久久网| 在线免费观看日本一区| 日韩不卡一区二区三区| 久久精品人人做人人爽人人| 91香蕉视频mp4| 青青国产91久久久久久| 国产精品久久久久9999吃药| 欧美日韩不卡一区| 国产成a人无v码亚洲福利| 亚洲综合免费观看高清完整版| 欧美大片一区二区三区| 97se亚洲国产综合自在线 | 国产精品香蕉一区二区三区| 亚洲人精品午夜| 精品久久久网站| 91美女视频网站| 久久国产综合精品| 一区2区3区在线看| 国产亚洲精品资源在线26u| 在线视频你懂得一区二区三区| 精品中文字幕一区二区| 亚洲五月六月丁香激情| 中文字幕不卡的av| 日韩欧美在线综合网| 91国偷自产一区二区开放时间 | 国产成人精品一区二|