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

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

?? guidev_measure.c

?? 汽車綜合監控儀——廣東省大學生電子設計大賽作品 (獲一等獎) 使用技術:ARM9(S3C2440)
?? 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一区二区三区免费野_久草精品视频
亚洲精品欧美综合四区| 亚洲6080在线| 亚洲国产精品欧美一二99| 精品亚洲porn| 欧美性做爰猛烈叫床潮| 中文字幕免费一区| 另类小说色综合网站| 欧美性大战久久久久久久| 国产亚洲欧洲一区高清在线观看| 亚洲电影第三页| 一本色道a无线码一区v| 日本一区二区三区四区| 久久99精品久久久久久国产越南 | 亚洲免费看黄网站| 国产精品1024久久| 日韩精品资源二区在线| 日韩激情视频在线观看| 欧美日韩亚洲综合| 夜夜嗨av一区二区三区四季av| 国产·精品毛片| 久久久青草青青国产亚洲免观| 日韩电影在线免费| 7777精品伊人久久久大香线蕉完整版| 综合分类小说区另类春色亚洲小说欧美 | 在线精品亚洲一区二区不卡| 日本一区二区久久| 国产不卡一区视频| 国产农村妇女毛片精品久久麻豆 | 久久一留热品黄| 欧美bbbbb| 精品国免费一区二区三区| 蜜桃视频在线一区| 日韩欧美中文一区| 韩国成人福利片在线播放| 日韩午夜激情免费电影| 免费的成人av| 国产视频一区二区在线观看| 国产999精品久久久久久绿帽| 久久久精品欧美丰满| 成人福利视频在线| 亚洲一区在线观看视频| 欧美片在线播放| 美国一区二区三区在线播放| 精品盗摄一区二区三区| 国产成人自拍高清视频在线免费播放| 久久综合色8888| heyzo一本久久综合| 亚洲成人在线网站| 精品国产乱子伦一区| 国产成人欧美日韩在线电影 | 久久精品亚洲一区二区三区浴池| 国产精品一区二区久激情瑜伽 | 国产亚洲欧美日韩日本| av不卡免费在线观看| 亚洲国产日韩综合久久精品| 69堂亚洲精品首页| 国产精品亚洲一区二区三区妖精| 国产精品美女一区二区在线观看| 成人白浆超碰人人人人| 午夜在线成人av| 久久综合资源网| 一本一本久久a久久精品综合麻豆| 亚洲国产你懂的| 精品国产乱码久久久久久浪潮| 国产成人激情av| 亚洲成人在线免费| 久久久另类综合| 欧美中文字幕一区| 国产精品一区二区无线| 亚洲成人av一区二区| 久久亚区不卡日本| 欧美精选一区二区| 成人免费av网站| 午夜精品久久久久久久蜜桃app| 久久综合国产精品| 欧美亚洲国产bt| 国产大片一区二区| 蜜臂av日日欢夜夜爽一区| 18成人在线观看| 久久亚洲一区二区三区明星换脸 | www.欧美日韩国产在线| 奇米精品一区二区三区四区 | 蜜臀av性久久久久蜜臀aⅴ| 国产精品久久久久久久久免费樱桃 | 亚洲欧美中日韩| 日韩精品一区在线| 色琪琪一区二区三区亚洲区| 国产成人综合在线播放| 日本不卡中文字幕| 亚洲综合在线视频| 中文字幕亚洲欧美在线不卡| 日韩丝袜情趣美女图片| 在线视频观看一区| 97久久超碰国产精品电影| 国产乱人伦偷精品视频免下载| 亚洲五码中文字幕| 亚洲精品你懂的| 国产精品国产精品国产专区不片| 日韩精品一区二区三区在线播放 | 久久青草欧美一区二区三区| 91精品一区二区三区在线观看| 99re这里只有精品首页| 国产美女娇喘av呻吟久久| 日本免费新一区视频| 亚洲一区二区三区视频在线| 成人欧美一区二区三区视频网页| 久久网这里都是精品| 精品国产凹凸成av人导航| 欧美一区在线视频| 91精品婷婷国产综合久久性色 | 琪琪久久久久日韩精品| 天天色天天爱天天射综合| 亚洲已满18点击进入久久| 亚洲天堂av老司机| 中文字幕日韩精品一区| 综合激情成人伊人| 一区二区三区资源| 亚洲高清在线精品| 五月天丁香久久| 日本午夜一区二区| 国产在线一区观看| 国产成人欧美日韩在线电影| 波多野结衣精品在线| 色婷婷一区二区三区四区| 欧美亚洲国产一区二区三区va| 欧美日韩精品一区二区三区四区| 欧美日韩精品欧美日韩精品一 | 91精品国产综合久久小美女| 欧美日韩色综合| 日韩欧美国产不卡| 久久久精品影视| 亚洲欧美在线另类| 五月天亚洲精品| 国产一区二区不卡| www.色精品| 91精品国产全国免费观看| 精品1区2区在线观看| 国产精品视频yy9299一区| 自拍偷拍欧美精品| 日本在线不卡视频| 高清在线不卡av| 欧美日韩一区二区三区免费看 | 一区二区三区在线观看国产| 亚洲成人精品在线观看| 久久99精品久久久久久动态图 | 天天操天天干天天综合网| 青娱乐精品视频| 成人av电影免费观看| 欧美情侣在线播放| 国产精品免费看片| 男人操女人的视频在线观看欧美| 国产成人高清在线| 欧美一区二区三区性视频| 欧美国产精品一区二区三区| 亚洲在线成人精品| 国产一二精品视频| 欧美剧在线免费观看网站| 国产欧美精品一区二区三区四区| 亚洲午夜一区二区三区| 国产成人精品综合在线观看 | 免费观看在线综合| 99热精品一区二区| 26uuu精品一区二区在线观看| 综合在线观看色| 国产精品69久久久久水密桃| 欧美日韩国产精品成人| 国产精品对白交换视频| 久久99精品一区二区三区 | 亚洲国产三级在线| 国产suv精品一区二区三区| 欧美日韩国产成人在线91| 最新高清无码专区| 成人午夜av在线| 日韩免费视频一区二区| 亚洲国产精品一区二区www在线| 国产成人鲁色资源国产91色综 | 久久精品久久精品| 91黄色激情网站| 国产精品嫩草影院com| 精品一区二区在线看| 欧美日韩日日骚| 中文字幕一区二区三区av| 国产91精品在线观看| 26uuu欧美| 国产麻豆精品在线观看| 日韩欧美国产精品一区| 免费成人av在线播放| 欧美日韩国产中文| 亚洲午夜久久久久久久久久久| 99久久99久久精品免费观看| 欧美韩日一区二区三区四区| 经典三级一区二区| 久久亚区不卡日本| 丁香激情综合五月| 国产精品美女www爽爽爽| 国产精品69毛片高清亚洲| 久久免费国产精品| 国产福利精品导航| 中文字幕国产一区| 91免费观看视频|