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

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

?? guidev_measure.c

?? ucgui在ARM44B0目標板上的移植代碼支持16級灰度
?? C
字號:
/***********************************************************************************************************                                                uC/GUI*                        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        : GUIDevM.CPurpose     : Implementation of measurement devices              The purpose of a measurement device is to find out the              area (Rectangle) affected by a sequence of drawing              operations.---------------------------END-OF-HEADER------------------------------*/#include <string.h>#include "GUI_Private.h"#include "GUIDebug.h"/* Memory device capabilities are compiled only if support for them is enabled.*/ #if GUI_SUPPORT_MEMDEVtypedef struct {  GUI_RECT rUsed;  tLCDDEV_Color2Index*  pfColor2Index;  tLCDDEV_Index2Color*  pfIndex2Color;} GUI_MEASDEV;#define GUI_MEASDEV_h2p(h) ((GUI_MEASDEV*)GUI_ALLOC_h2p(h))/*        *********************************************************        *                                                       *        *           internal routines                           *        *                                                       *				*     (not part of interface table)                     *        *                                                       *        **********************************************************/void _MarkPixel(int x, int y) {  GUI_MEASDEV* pDev = (GUI_MEASDEV*)(GUI_MEMDEV_h2p(GUI_Context.hDevData));  if (x < pDev->rUsed.x0)    pDev->rUsed.x0 = x;  if (x > pDev->rUsed.x1)    pDev->rUsed.x1 = x;  if (y < pDev->rUsed.y0)    pDev->rUsed.y0 = y;  if (y > pDev->rUsed.y1)    pDev->rUsed.y1 = y;}void _MarkRect(int x0, int y0, int x1, int y1) {  GUI_MEASDEV* pDev = (GUI_MEASDEV*)(GUI_MEMDEV_h2p(GUI_Context.hDevData));  if (x0 < pDev->rUsed.x0)    pDev->rUsed.x0 = x0;  if (x1 > pDev->rUsed.x1)    pDev->rUsed.x1 = x1;  if (y1 < pDev->rUsed.y0)    pDev->rUsed.y0 = y0;  if (y1 > pDev->rUsed.y1)    pDev->rUsed.y1 = y1;}/*        *********************************************************        *                                                       *        *         Universal draw Bitmap routine                 *        *                                                       *        **********************************************************/static void _DrawBitmap   (int x0, int y0,                       int xsize, int ysize,                       int BitsPerPixel,                        int BytesPerLine,                       const U8* pData, int Diff,                       const LCD_PIXELINDEX* pTrans){  GUI_USE_PARA(BitsPerPixel);  GUI_USE_PARA(BytesPerLine);  GUI_USE_PARA(pData);  GUI_USE_PARA(Diff);  GUI_USE_PARA(pTrans);  _MarkRect(x0,y0,x0+xsize-1, y0+ysize-1);}static void _DrawHLine    (int x0, int y,  int x1) {  _MarkRect(x0, y, x1, y);}static void _DrawVLine    (int x , int y0,  int y1) {  _MarkRect(x, y0, x, y1);}static void _SetPixelIndex (int x, int y, int Index) {  GUI_USE_PARA(Index);  _MarkPixel(x,y);}static void _XorPixel (int x, int y){  _MarkPixel(x,y);}static unsigned int _GetPixelIndex (int x, int y) {   GUI_USE_PARA(x);  GUI_USE_PARA(y);  return 0;}static void _FillRect     (int x0, int y0, int x1, int y1){  _MarkRect(x0,y0,x1,y1);}static void _GetRect  (LCD_RECT* pRect) {  pRect->x0 = pRect->y0 = -4095;  pRect->x1 = pRect->y1 =  4095;}static  unsigned int _Color2Index (LCD_COLOR Color) {  GUI_MEASDEV * pDev = GUI_MEASDEV_h2p(GUI_Context.hDevData);  return pDev->pfColor2Index(Color);}static  LCD_COLOR _Index2Color (int Index) {  GUI_MEASDEV * pDev = GUI_MEASDEV_h2p(GUI_Context.hDevData);  return pDev->pfIndex2Color(Index);}static void CalcPolyRect(GUI_RECT *pr, const GUI_POINT* paPoint, int NumPoints) {  int i;  int xMin, xMax, yMin, yMax;  xMin = GUI_XMAX;  yMin = GUI_YMAX;  xMax = GUI_XMIN;  yMax = GUI_YMIN;  for (i=0; i<NumPoints; i++) {    int x = paPoint->x;    int y = paPoint->y;    if (xMin > x)      xMin = x;    if (xMax < x)      xMax = x;    if (yMin > y)      yMin = y;    if (yMax < y)      yMax = y;    paPoint++;  }  pr->x0 = xMin;  pr->x1 = xMax;  pr->y0 = yMin;  pr->y1 = yMax;}static void _FillPolygon(const GUI_POINT* paPoint, int NumPoints, int x0, int y0) {  GUI_RECT r;  CalcPolyRect(&r, paPoint, NumPoints);  GUI_MoveRect(&r, x0, y0);  _MarkRect(r.x0, r.y0, r.x1, r.y1);}static void _FillPolygonAA(const GUI_POINT* paPoint, int NumPoints, int x0, int y0) {  GUI_RECT r;  CalcPolyRect(&r, paPoint, NumPoints);  GUI_MoveRect(&r, x0, y0);  if (GUI_Context.AA_HiResEnable) {    r.x0 /= GUI_Context.AA_Factor;    r.y0 /= GUI_Context.AA_Factor;    r.x1 = (r.x1 + GUI_Context.AA_Factor -1) / GUI_Context.AA_Factor;    r.y1 = (r.y1 + GUI_Context.AA_Factor -1) / GUI_Context.AA_Factor;  }  _MarkRect(r.x0, r.y0, r.x1, r.y1);}/***********************************************************************             Device structure************************************************************************/static const tLCDDEV_APIList _APIList = {  _Color2Index,  _DrawBitmap,  _DrawHLine,  _DrawVLine,  _FillRect,  _GetPixelIndex,  _GetRect,  _Index2Color,  _SetPixelIndex,  _XorPixel,  _FillPolygon,  _FillPolygonAA};/*  *********************************************************  *  *            Exported routines  *  **********************************************************//*      *************************************************      *                                               *      *             Delete                            *      *                                               *      **************************************************/void GUI_MEASDEV_Delete (GUI_MEASDEV_Handle hMemDev) {/* Make sure memory device is not used */  if ((GUI_Context.hDevData = hMemDev) != 0)	  GUI_SelectLCD();  GUI_ALLOC_FREE(hMemDev);}/*      *************************************************      *                                               *      *             Clear Rectangle                   *      *                                               *      **************************************************/void GUI_MEASDEV_ClearRect (GUI_MEASDEV_Handle hMemDev) {  if (hMemDev) {    GUI_MEASDEV* pDevData = (GUI_MEASDEV*)GUI_ALLOC_H2P(hMemDev);    pDevData->rUsed.x0 = GUI_XMAX;    pDevData->rUsed.y0 = GUI_YMAX;    pDevData->rUsed.x1 = GUI_XMIN;    pDevData->rUsed.y1 = GUI_YMIN;  } }/*      *************************************************      *                                               *      *             Create                            *      *                                               *      **************************************************/GUI_MEASDEV_Handle GUI_MEASDEV_Create (void) {  int MemSize;  GUI_MEASDEV_Handle hMemDev;  MemSize = sizeof(GUI_MEASDEV);  hMemDev = GUI_ALLOC_ALLOC(MemSize);  if (hMemDev) {    GUI_MEASDEV* pDevData = (GUI_MEASDEV*)GUI_ALLOC_H2P(hMemDev);    pDevData->pfColor2Index = GUI_Context.pDeviceAPI->pfColor2Index;        pDevData->pfIndex2Color = GUI_Context.pDeviceAPI->pfIndex2Color;    GUI_MEASDEV_ClearRect(hMemDev);  } else {    GUI_DEBUG_WARN("GUI_MEASDEV_Create: Alloc failed");  }  return hMemDev;}/*      *************************************************      *                                               *      *             Select                            *      *                                               *      **************************************************/void GUI_MEASDEV_Select(GUI_MEASDEV_Handle hMem) {  if (hMem==0) {    GUI_SelectLCD();  } else {    #if GUI_WINSUPPORT      WM_Deactivate();    #endif    GUI_Context.hDevData = hMem;    GUI_Context.pDeviceAPI  = &_APIList;    GUI_Context.pClipRect_HL = NULL;    LCD_SetClipRectMax();  }}/*      *************************************************      *                                               *      *             GetRect      *                                               *      **************************************************/void GUI_MEASDEV_GetRect(GUI_MEASDEV_Handle hMem, GUI_RECT *pRect) {  if (hMem) {    GUI_MEASDEV* pDev = (GUI_MEASDEV*)GUI_ALLOC_H2P(hMem);    if (pRect) {      pRect->x0 = pDev->rUsed.x0;      pRect->y0 = pDev->rUsed.y0;      pRect->x1 = pDev->rUsed.x1;      pRect->y1 = pDev->rUsed.y1;    }  }}#elsevoid GUIDEV_Measure(void) {} /* avoid empty object files */#endif /* GUI_MEMDEV_SUPPORT */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合狠狠综合久久综合88 | 欧美日韩国产a| 国产a级毛片一区| 国产专区欧美精品| 裸体一区二区三区| 日产精品久久久久久久性色| 亚洲精品免费在线观看| 亚洲欧美日本韩国| 亚洲欧洲无码一区二区三区| 中文字幕一区av| 国产精品动漫网站| 亚洲欧美日韩人成在线播放| 自拍偷拍亚洲综合| 亚洲激情成人在线| 亚洲成人av福利| 日本不卡视频一二三区| 精油按摩中文字幕久久| 开心九九激情九九欧美日韩精美视频电影 | 国产成a人无v码亚洲福利| 国产一区二区毛片| 成人av集中营| 精品视频1区2区3区| 在线看日韩精品电影| 一本色道亚洲精品aⅴ| 欧美三级日韩三级国产三级| 日韩一级免费观看| 久久毛片高清国产| 亚洲男女一区二区三区| 亚洲在线一区二区三区| 久久精品国产亚洲一区二区三区 | 成人午夜激情影院| 欧美麻豆精品久久久久久| 在线看不卡av| 精品国产91乱码一区二区三区 | 日韩美女一区二区三区四区| 久久夜色精品国产欧美乱极品| 中文字幕巨乱亚洲| 亚洲一区二区三区四区五区中文| 久久99这里只有精品| 97超碰欧美中文字幕| 欧美一区二区三区四区在线观看 | 日韩视频永久免费| 国产精品无圣光一区二区| 亚洲成人在线免费| 成人做爰69片免费看网站| 91精品国产综合久久久久久漫画| 国产日产欧产精品推荐色| 午夜av一区二区| 成人天堂资源www在线| 欧美一二三区在线| 亚洲一区在线观看免费观看电影高清| 久久99深爱久久99精品| 欧美性大战久久久| 国产精品久久久久影院色老大| 蜜臀va亚洲va欧美va天堂| 色嗨嗨av一区二区三区| 国产日韩精品一区| 欧美aaa在线| 欧美性xxxxxxxx| 国产精品不卡一区二区三区| 久久精工是国产品牌吗| 欧美日韩www| 亚洲情趣在线观看| 国产成a人亚洲| 国产人成一区二区三区影院| 丝袜美腿亚洲一区| 欧美日韩久久一区| 亚洲精品国久久99热| 国产99精品视频| 国产亚洲精品久| 国产在线视频一区二区| 欧美xxxx老人做受| 激情图区综合网| 久久亚洲综合色一区二区三区| 美女一区二区久久| 精品久久免费看| 蜜乳av一区二区| 欧美人妇做爰xxxⅹ性高电影| 亚洲最新视频在线播放| 色999日韩国产欧美一区二区| 亚洲丝袜另类动漫二区| 99v久久综合狠狠综合久久| 国产精品麻豆视频| 91香蕉视频污在线| 一区二区欧美在线观看| 日本韩国一区二区三区视频| 亚洲综合久久久| 欧美日本在线看| 另类小说色综合网站| 久久亚洲欧美国产精品乐播| 国产剧情一区二区三区| 国产精品美女久久久久久2018| 成人高清视频在线观看| 亚洲欧洲在线观看av| 欧美日韩精品一区二区三区四区 | 欧美日韩五月天| 日韩激情av在线| 精品av久久707| 高清不卡在线观看av| 亚洲精品网站在线观看| 欧美日韩国产精品成人| 久久 天天综合| 国产精品久久久久久久久搜平片| 色婷婷综合久久久久中文一区二区| 亚洲与欧洲av电影| 精品99一区二区三区| 在线视频综合导航| 免费观看日韩av| 亚洲天堂精品视频| 欧美久久一二区| 国产suv一区二区三区88区| 亚洲精品日韩一| 精品国产91乱码一区二区三区| 91免费版在线| 日本亚洲三级在线| ...中文天堂在线一区| 日韩欧美中文字幕公布| 99在线精品免费| 蜜桃精品视频在线观看| 亚洲人亚洲人成电影网站色| 日韩精品自拍偷拍| 色偷偷一区二区三区| 国产在线一区二区| 亚洲电影第三页| 亚洲天堂久久久久久久| 精品国产欧美一区二区| 欧美午夜精品电影| a4yy欧美一区二区三区| 裸体健美xxxx欧美裸体表演| 亚洲国产精品久久不卡毛片| 国产目拍亚洲精品99久久精品| 91精品久久久久久蜜臀| 日本韩国欧美三级| 不卡的av电影在线观看| 国内精品国产成人国产三级粉色| 亚洲国产欧美一区二区三区丁香婷| 国产欧美一区二区在线观看| 56国语精品自产拍在线观看| 色综合色综合色综合色综合色综合| 国产精品一卡二卡| 经典一区二区三区| 蜜臀久久99精品久久久久宅男| 亚洲国产精品嫩草影院| 日韩理论在线观看| 国产精品国产成人国产三级 | 国产99一区视频免费| 日韩电影免费在线观看网站| 艳妇臀荡乳欲伦亚洲一区| 亚洲三级理论片| 亚洲欧美日韩中文播放 | 亚洲美女偷拍久久| 欧美高清在线精品一区| 久久久亚洲综合| 久久久久99精品国产片| 精品第一国产综合精品aⅴ| 欧美日韩成人综合| 欧美日韩不卡一区| 91精品国产全国免费观看| 欧美二区三区91| 欧美一级艳片视频免费观看| 日韩欧美一二区| 精品国产一区二区三区久久影院| 日韩美女天天操| 久久精品欧美日韩精品| 国产三级精品在线| 中文字幕在线一区二区三区| 亚洲国产精品成人综合 | 91精品国产综合久久婷婷香蕉 | 欧美高清视频在线高清观看mv色露露十八 | 欧美精品一区视频| 国产人成亚洲第一网站在线播放| 国产精品久久久久久久午夜片| ㊣最新国产の精品bt伙计久久| 亚洲美女偷拍久久| 欧美a一区二区| 国产成人精品在线看| 91免费观看在线| 日韩视频一区二区| 欧美国产日韩精品免费观看| 亚洲欧美另类图片小说| 午夜激情综合网| 激情五月激情综合网| 91在线云播放| 3d动漫精品啪啪1区2区免费| 久久亚洲精品小早川怜子| 综合欧美亚洲日本| 蜜桃精品视频在线观看| 成人黄色软件下载| 欧美精品在欧美一区二区少妇| 26uuu国产日韩综合| 一区二区免费看| 国产在线国偷精品免费看| 日本久久电影网| 久久无码av三级| 亚洲国产精品久久久久婷婷884 | 国产欧美日韩另类一区| 亚洲成人7777| 99国产精品一区| 欧美精品一区二区在线播放| 亚洲综合在线视频|