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

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

?? guidev_measure.c

?? uCOS/uCGUI在2440上的移植
?? 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一区二区三区免费野_久草精品视频
精品国产乱码久久久久久蜜臀 | 欧美久久久影院| 国产成人免费在线| 国产电影精品久久禁18| 国产精品亚洲综合一区在线观看| 久久精品国产免费| 久久99蜜桃精品| 国产剧情一区二区三区| 福利电影一区二区三区| 不卡影院免费观看| 91美女在线观看| 欧美无砖专区一中文字| 91精品国产丝袜白色高跟鞋| 337p亚洲精品色噜噜| 精品久久久久99| 国产视频一区二区在线| 中文字幕视频一区| 亚洲狠狠爱一区二区三区| 蜜桃久久精品一区二区| 国产一区二区三区av电影| 99久久精品国产毛片| 欧美日韩免费高清一区色橹橹| 欧美日高清视频| 欧美激情在线观看视频免费| 亚洲欧美日韩一区二区| 琪琪久久久久日韩精品| 国产一区二区三区美女| 日本精品视频一区二区三区| 91精品国模一区二区三区| 欧美激情一区二区三区在线| 一区二区三区欧美视频| 精油按摩中文字幕久久| 99精品在线免费| 日韩美女在线视频| 国产午夜精品久久久久久免费视| 亚洲动漫第一页| 亚洲午夜精品网| 秋霞成人午夜伦在线观看| 国产成人免费视频| 777色狠狠一区二区三区| 国产无人区一区二区三区| 亚洲一区视频在线| 成人黄色免费短视频| 777精品伊人久久久久大香线蕉| 久久人人97超碰com| 五月综合激情日本mⅴ| 成人福利视频网站| 日韩美女在线视频| 亚洲一区二区三区四区在线观看 | 捆绑调教美女网站视频一区| 成人h动漫精品一区二区| 欧美日韩精品一区二区三区四区 | 精品在线免费观看| 欧美午夜不卡视频| 亚洲精品少妇30p| av亚洲精华国产精华精| 久久久久久久精| 国产美女一区二区| 精品国产电影一区二区| 免费成人小视频| 欧美精品黑人性xxxx| 亚洲图片自拍偷拍| 91福利在线免费观看| 亚洲欧洲日韩综合一区二区| 国产伦精一区二区三区| 欧美精品一区二区蜜臀亚洲| 午夜精品福利一区二区三区av | ww久久中文字幕| 毛片一区二区三区| 日韩欧美国产三级| 精品亚洲国产成人av制服丝袜| 欧美日韩国产大片| 丝袜美腿亚洲一区| 欧美一区三区四区| 美国精品在线观看| 2024国产精品| 大白屁股一区二区视频| 久久网站最新地址| 高清久久久久久| 国产精品久久久久久久浪潮网站| 高清在线观看日韩| 日韩理论电影院| 欧美午夜片在线观看| 日本最新不卡在线| 日韩精品专区在线影院重磅| 久久99国产精品久久99| 欧美精品一区二区三区在线播放 | 成人免费在线观看入口| 99精品视频中文字幕| 伊人婷婷欧美激情| 欧美一级久久久| 国产高清在线精品| 自拍偷拍国产精品| 6080国产精品一区二区| 久久精品国产精品青草| 国产精品网站在线观看| 日本久久精品电影| 久久99蜜桃精品| 综合电影一区二区三区| 欧美福利视频导航| 国产精品69毛片高清亚洲| 亚洲人成人一区二区在线观看| 欧美另类变人与禽xxxxx| 国产精品一区二区在线播放| 亚洲欧美另类图片小说| 欧美不卡在线视频| 91丨porny丨国产入口| 蜜桃传媒麻豆第一区在线观看| 久久久亚洲精品一区二区三区| 色婷婷av一区二区三区软件| 蜜臀av性久久久久av蜜臀妖精| 国产精品欧美综合在线| 欧美日韩午夜在线| 成人国产免费视频| 加勒比av一区二区| 亚洲国产日韩综合久久精品| 久久视频一区二区| 欧美日韩国产精选| eeuss影院一区二区三区 | 国产午夜亚洲精品羞羞网站| 91啪九色porn原创视频在线观看| 精品一区二区在线视频| 亚洲国产一区二区视频| 中文字幕不卡在线观看| 日韩欧美国产综合| 欧美视频一区在线| 91在线一区二区三区| 国产美女精品一区二区三区| 午夜精品国产更新| 亚洲线精品一区二区三区| 国产精品盗摄一区二区三区| 欧美电影免费提供在线观看| 欧美美女一区二区| 欧洲国内综合视频| 9l国产精品久久久久麻豆| 国产伦精品一区二区三区免费| 日日夜夜一区二区| 亚洲一卡二卡三卡四卡五卡| 亚洲免费在线看| 国产精品盗摄一区二区三区| 国产亚洲一区二区三区四区 | 三级在线观看一区二区| 亚洲欧美日韩成人高清在线一区| 日本一区二区三级电影在线观看 | 欧美大白屁股肥臀xxxxxx| 欧美日韩日日摸| 欧美三级乱人伦电影| 色视频成人在线观看免| 色哟哟一区二区在线观看| 99久久综合国产精品| 成人黄页在线观看| 99精品欧美一区| 色先锋aa成人| 欧美日韩亚洲综合在线| 欧美日韩1区2区| 精品欧美久久久| 日韩午夜av一区| 久久久久久久久久久黄色| 久久色在线观看| 国产精品久久久久久久岛一牛影视| 久久这里都是精品| 国产精品免费视频一区| 亚洲欧洲精品一区二区三区不卡| 中文字幕国产一区二区| 亚洲欧美激情视频在线观看一区二区三区| 亚洲国产高清aⅴ视频| 亚洲欧洲日韩综合一区二区| 一区二区三区四区中文字幕| 亚洲va欧美va人人爽| 美日韩一区二区三区| 韩国理伦片一区二区三区在线播放| 久久国产尿小便嘘嘘| 国产成人精品影视| 91国模大尺度私拍在线视频| 欧美一区二区精品在线| 国产婷婷色一区二区三区四区| 国产精品传媒入口麻豆| 亚洲va欧美va人人爽午夜| 国内精品国产成人国产三级粉色| 国产福利视频一区二区三区| 色悠久久久久综合欧美99| 日韩欧美在线影院| 中文字幕一区视频| 日韩电影免费在线| 懂色av一区二区夜夜嗨| 日本福利一区二区| 精品福利一区二区三区免费视频| 中文字幕一区二区三区在线不卡| 亚洲一区二区三区免费视频| 久久99精品国产麻豆婷婷洗澡| www.亚洲人| 欧美成人猛片aaaaaaa| 亚洲欧美一区二区三区久本道91| 五月综合激情婷婷六月色窝| 成人精品亚洲人成在线| 日韩欧美在线一区二区三区| 一区二区三区成人| 国产激情视频一区二区在线观看| 欧美日韩三级在线| 亚洲日本va午夜在线电影|