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

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

?? gui_protected.h

?? Keil C下通過的UCGUI,UCGUI的移植源代碼
?? H
字號:
/*
*********************************************************************************************************
*                                                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        : GUI_Protected.h
Purpose     : GUI internal declarations
---------------------------END-OF-HEADER------------------------------
*/

#ifndef  GUI_PROTECTED_H
#define  GUI_PROTECTED_H

#include "GUI.h"
#include "LCD_Protected.h"
#include "GUIDebug.h"


/**********************************************************************
*
*                        Defaults for config switches
*
***********************************************************************

  The config switches below do not affect the interface in GUI.h and
  are therefor not required to be in GUI.h.
*/

#ifndef GUI_ALLOC_SIZE
  #define GUI_ALLOC_SIZE      1000
#endif

/* Short address area.
   For  most compilers, this is "near" or "__near"
   We do not use this except for some CPUs which we know to always have some
   near memory, because the GUI_Context ans some other data will be declared
   to be in this short address (near) memory area as it has a major effect
   on performance.
   Please define in GUIConf.h (if you want to use it)
*/
#ifndef GUI_SADDR
  #define GUI_SADDR
#endif


/*      *********************************
        *                               *
        *      Angles                   *
        *                               *
        *********************************
*/

#define GUI_45DEG  512
#define GUI_90DEG  (2*GUI_45DEG)
#define GUI_180DEG (4*GUI_45DEG)
#define GUI_360DEG (8*GUI_45DEG)




/*********************************************************************
*
*             Support for multitasking systems
*
**********************************************************************
*/

void GUI_Lock(void);
void GUI_Unlock(void);
void GUITASK_Init(void);

#if !GUI_OS
  #define GUI_LOCK()
  #define GUI_UNLOCK()
  #define GUITASK_INIT()
#else
  #define GUI_LOCK() GUI_Lock()
  #define GUI_UNLOCK() GUI_Unlock()
  #define GUITASK_INIT() GUITASK_Init()
#endif

/*****************************************************
*
*        ALLOC internals  (memory allocation)
*
******************************************************
*/


/*****************************************************
*
*        Usage internals
*
******************************************************

*/

typedef GUI_HMEM GUI_USAGE_Handle;
typedef struct tsUSAGE_APIList tUSAGE_APIList;
typedef struct GUI_Usage GUI_USAGE;
#define GUI_USAGE_h GUI_USAGE_Handle



typedef GUI_USAGE_h tUSAGE_CreateCompatible(GUI_USAGE* p);
typedef void        tUSAGE_AddPixel        (GUI_USAGE* p, int x, int y);
typedef void        tUSAGE_AddHLine        (GUI_USAGE* p, int x0, int y0, int len);
typedef void        tUSAGE_Clear           (GUI_USAGE* p);
typedef void        tUSAGE_Delete          (GUI_USAGE_h h);
typedef int         tUSAGE_GetNextDirty    (GUI_USAGE* p, int *pxOff, int yOff);
#define GUI_USAGE_h2p(h) ((GUI_USAGE*)GUI_ALLOC_h2p(h))


void GUI_USAGE_DecUseCnt(GUI_USAGE_Handle  hUsage);

GUI_USAGE_Handle GUI_USAGE_BM_Create(int x0, int y0, int xsize, int ysize, int Flags);
void GUI_USAGE_Select(GUI_USAGE_Handle hUsage);
#define GUI_USAGE_AddPixel(p, x,y)            p->pAPI->pfAddPixel(p,x,y)
#define GUI_USAGE_AddHLine(p,x,y,len)         p->pAPI->pfAddHLine(p,x,y,len)
#define GUI_USAGE_Clear(p)                    p->pAPI->pfClear(p)
#define GUI_USAGE_Delete(p)                   p->pAPI->pfDelete(p)
#define GUI_USAGE_GetNextDirty(p,pxOff, yOff) p->pAPI->pfGetNextDirty(p,pxOff, yOff)

struct tsUSAGE_APIList {
  tUSAGE_AddPixel*                pfAddPixel;
  tUSAGE_AddHLine*                pfAddHLine;
  tUSAGE_Clear*                   pfClear;
  tUSAGE_CreateCompatible*        pfCreateCompatible;
  tUSAGE_Delete*                  pfDelete;
  tUSAGE_GetNextDirty*            pfGetNextDirty;
} ;

struct GUI_Usage {
  I16P x0, y0, XSize, YSize;
  const tUSAGE_APIList *pAPI;
  I16 UseCnt;
};

/*****************************************************
*
*        GUI_MEMDEV
*
******************************************************
*/

#if GUI_SUPPORT_MEMDEV
  typedef struct GUI_MemDev GUI_MEMDEV;

  struct GUI_MemDev {
    I16P                  x0, y0, XSize, YSize;
    int                   NumColors;
    int                   BytesPerLine;
    GUI_HMEM              hUsage;
    tLCDDEV_Color2Index*  pfColor2Index;
    tLCDDEV_Index2Color*  pfIndex2Color;
  };

  #define GUI_MEMDEV_h2p(h) ((GUI_MEMDEV*)GUI_ALLOC_h2p(h))
  void GUI_MEMDEV__CopyFromLCD(GUI_MEMDEV_Handle hMem);
#endif

/*******************************************************************
*
*                   LCD_HL_ level defines
*
********************************************************************
*/

#if GUI_SUPPORT_MEMDEV
  #define LCD_HL_DrawHLine             GUI_Context.pLCD_HL->pfDrawHLine
  #define LCD_HL_DrawPixel             GUI_Context.pLCD_HL->pfDrawPixel
#else
  #define LCD_HL_DrawHLine             LCD_DrawHLine
  #define LCD_HL_DrawPixel             LCD_DrawPixel
#endif


/*********************************************************************
*
*                     Helper functions
*
***********************************************************************
*/

#define GUI_ZEROINIT(Obj) memset(Obj, 0, sizeof(Obj))
int  GUI_cos(int angle);
int  GUI_sin(int angle);
void GL_DrawLine1(int x0, int y0, int x1, int y1);
extern const U32 GUI_Pow10[10];

/* GUIAALib.c --- direct anti-aliased drawing */
int  GUI_AA_Init(int x0, int x1);
int  GUI_AA_Init_HiRes(int x0, int x1);
void GUI_AA_Exit(void);
I16 GUI_AA_HiRes2Pixel(int HiRes);

void GL_FillCircleAA_HiRes(int x0, int y0, int r);

/* Conversion routines */
void GUI_AddHex(U32 v, U8 Len, char**ps);
void GUI_AddBin(U32 v, U8 Len, char**ps);
void GUI_AddDecShift(I32 v, U8 Len, U8 Shift, char**ps);
long GUI_AddSign(long v, char**ps);

int GUI__GetLineLen(const char GUI_FAR *s, int MaxLen);
int GUI_GetLineDistX(const char GUI_FAR *s, int Len);
int GUI__GetFontSizeY(void);
int GUI__HandleEOLine(const char* *ps);
void GUI__DispLine(const char GUI_FAR *s, int Len, const GUI_RECT* pr);
void GUI__AddSpaceHex(U32 v, U8 Len, char**ps);


/*********************************************************************
*
*             2d - GL
*
**********************************************************************
*/

void GL_DispChar         (U16 c);
void GL_DrawArc          (int x0, int y0, int rx, int ry, int a0, int a1);
void GL_DrawBitmap       (const GUI_BITMAP* pBM, int x0, int y0);
void GL_DrawCircle       (int x0, int y0, int r);
void GL_DrawEllipse      (int x0, int y0, int rx, int ry);
void GL_DrawHLine        (int y0, int x0, int x1);
void GL_DrawPolygon      (const GUI_POINT* pPoints, int NumPoints, int x0, int y0);
void GL_DrawPoint        (int x, int y);
void GL_DrawLineRel      (int dx, int dy);
void GL_DrawLineTo       (int x, int y);
void GL_DrawLine         (int x0, int y0, int x1, int y1);
void GL_MoveTo           (int x, int y);
void GL_FillCircle       (int x0, int y0, int r);
void GL_FillCircleAA     (int x0, int y0, int r);
void GL_FillEllipse      (int x0, int y0, int rx, int ry);
void GL_FillPolygon      (const GUI_POINT* pPoints, int NumPoints, int x0, int y0);
void GL_SetDefault       (void);

/************************************************************
*
*                 Callback pointers for dynamic linkage
*
*************************************************************
Dynamic linkage pointers reduces configuration hassles.
*/
typedef int  GUI_tfTimer(void);
typedef char GUI_CURSOR_tfTempHide  (const GUI_RECT* pRect);
typedef void GUI_CURSOR_tfTempUnhide(void);
typedef int  WM_tfHandlePID(void);


/************************************************************
*
*        Cursors 
*
*************************************************************
*/

extern const unsigned char  GUI_Pixels_ArrowS[45];
extern const unsigned char  GUI_Pixels_ArrowM[60];
extern const unsigned char  GUI_Pixels_ArrowL[150];
extern const unsigned char  GUI_Pixels_CrossS[33];
extern const unsigned char  GUI_Pixels_CrossM[126];
extern const unsigned char  GUI_Pixels_CrossL[248];
extern const GUI_LOGPALETTE GUI_CursorPal;
extern const GUI_LOGPALETTE GUI_CursorPalI;

#endif   /* Avoid multiple inclusion */

/************************************************************
*
*         EXTERN declartions/definitions
*
*************************************************************
*/

#ifdef  GL_CORE_C
  #define EXTERN
#else
  #define EXTERN extern
#endif

EXTERN GUI_SADDR GUI_CONTEXT        GUI_Context;        /* Thread wide globals */
EXTERN GUI_SADDR char               GUI_DecChar;
EXTERN           GUI_tfTimer*       GUI_pfTimerExec;
EXTERN           WM_tfHandlePID*    WM_pfHandlePID;

#if GUI_SUPPORT_CURSOR
  EXTERN GUI_CURSOR_tfTempHide*   GUI_CURSOR_pfTempHide;
  EXTERN GUI_CURSOR_tfTempUnhide* GUI_CURSOR_pfTempUnhide;
#endif


#undef EXTERN

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
懂色av一区二区三区免费看| 国内精品嫩模私拍在线| 亚洲成人精品在线观看| 日本欧美韩国一区三区| 91在线国产福利| 精品久久久久久久久久久久包黑料| 国产精品亲子伦对白| 丝袜亚洲精品中文字幕一区| 成人激情免费网站| 精品国产免费一区二区三区四区| 亚洲欧美日韩在线不卡| 国产一区二区福利视频| 欧美高清激情brazzers| 亚洲黄色在线视频| 国产成人精品免费| 欧美电影免费观看高清完整版在线 | 午夜av一区二区三区| 成人精品gif动图一区| 欧美mv和日韩mv的网站| 视频一区在线播放| 欧美日韩国产高清一区二区| 亚洲欧洲成人精品av97| 国产老女人精品毛片久久| 日韩欧美一区在线观看| 午夜免费久久看| 欧美三级中文字| 一区二区三区免费网站| 91年精品国产| 中文字幕制服丝袜成人av| 国产精品一卡二| 久久久久久一二三区| 国产最新精品免费| 亚洲精品在线一区二区| 久久精品噜噜噜成人av农村| 91精品久久久久久久久99蜜臂| 亚洲福利视频导航| 欧美电影在线免费观看| 视频在线在亚洲| 日韩亚洲欧美在线| 精久久久久久久久久久| 久久久美女艺术照精彩视频福利播放| 久久综合综合久久综合| 国产偷国产偷亚洲高清人白洁| 国内成人免费视频| 国产亚洲一本大道中文在线| 国产精品一区二区三区网站| 国产人久久人人人人爽| 99久久精品免费精品国产| 亚洲色欲色欲www| 欧美三级三级三级爽爽爽| 日日夜夜精品视频天天综合网| 91精品婷婷国产综合久久| 美女性感视频久久| 国产欧美一区二区三区在线老狼 | 欧美电视剧免费全集观看| 麻豆国产欧美日韩综合精品二区| 欧美成人vps| 成人高清免费观看| 一区二区视频免费在线观看| 欧美日韩国产a| 国产尤物一区二区在线| 亚洲色图视频网站| 欧美一区二区三区四区视频| 国产成人啪免费观看软件| 亚洲欧美日韩小说| 日韩欧美一区在线| 色拍拍在线精品视频8848| 午夜精品在线看| 日本一区二区三区四区| 精品视频1区2区| 国产精品18久久久久| 一区二区三区不卡视频在线观看 | 国产欧美精品一区aⅴ影院| 色综合夜色一区| 精品一区二区在线视频| 亚洲视频一区二区在线| 精品免费国产一区二区三区四区| 成人av电影在线观看| 青娱乐精品视频在线| 国产精品久久久久影院亚瑟| 91精品中文字幕一区二区三区| eeuss鲁一区二区三区| 免费高清在线一区| 一区二区三区四区不卡在线 | 亚洲男同1069视频| 久久久青草青青国产亚洲免观| 欧美影院午夜播放| 成人激情免费视频| 精品夜夜嗨av一区二区三区| 一区二区三区产品免费精品久久75| 国产午夜精品美女毛片视频| 欧美精品一二三四| 色伊人久久综合中文字幕| 国产一区二区不卡在线| 日韩二区三区四区| 亚洲已满18点击进入久久| 国产免费观看久久| 久久久噜噜噜久久中文字幕色伊伊| 欧美欧美午夜aⅴ在线观看| 99久久久精品| 成人性视频网站| 国产精品一区不卡| 国内精品视频666| 另类小说综合欧美亚洲| 日韩激情一区二区| 亚洲h在线观看| 亚洲午夜私人影院| 亚洲欧美另类久久久精品 | 日韩久久免费av| 91精品黄色片免费大全| 欧美日韩一区精品| 欧美在线一区二区三区| 91香蕉国产在线观看软件| 9人人澡人人爽人人精品| 国产98色在线|日韩| 国产精品一卡二卡| 国产精品夜夜嗨| 国产91丝袜在线18| 成人avav影音| 91性感美女视频| 日本久久一区二区三区| 99re6这里只有精品视频在线观看| 成人美女在线观看| 97久久精品人人做人人爽| 91日韩精品一区| 欧美一a一片一级一片| 欧美性xxxxxxxx| 91精品一区二区三区在线观看| 欧美zozozo| 国产欧美视频一区二区三区| 日本一区二区三区免费乱视频 | 高清久久久久久| 99精品视频在线观看| 91蜜桃视频在线| 欧美精品一卡二卡| 2020国产成人综合网| 亚洲国产高清在线观看视频| 综合在线观看色| 午夜日韩在线电影| 国产精品一区免费视频| 91在线观看污| 欧美一区二区三区四区在线观看| 精品福利在线导航| 亚洲色图欧洲色图婷婷| 日本亚洲三级在线| 成人小视频免费在线观看| 日本韩国欧美国产| 欧美一区二区视频在线观看2022| 久久亚洲精品国产精品紫薇| 亚洲国产成人在线| 亚洲成国产人片在线观看| 精品一区二区三区香蕉蜜桃 | 久久精品99国产精品日本| 成人免费观看男女羞羞视频| 欧美日韩在线播放三区四区| 欧美电影免费观看高清完整版| 亚洲婷婷国产精品电影人久久| 日韩精品久久理论片| 99视频一区二区| 精品日韩在线一区| 亚洲一区二区成人在线观看| 蓝色福利精品导航| 在线观看视频欧美| 久久久久国产一区二区三区四区| 亚洲成a天堂v人片| 国产成人aaaa| 欧美刺激午夜性久久久久久久| 亚洲视频精选在线| 国产福利电影一区二区三区| 欧美日韩高清影院| 亚洲韩国精品一区| 成人一级片在线观看| 日韩一区二区免费在线电影| 亚洲图片欧美激情| 国产成人精品免费看| 91精品国产欧美一区二区| 亚洲免费观看视频| 国产99久久久精品| 精品精品欲导航| 天堂久久久久va久久久久| 色视频一区二区| 综合分类小说区另类春色亚洲小说欧美| 久久国产精品第一页| 精品视频在线免费| 亚洲资源在线观看| 色哟哟国产精品| 亚洲欧美aⅴ...| 99国产精品视频免费观看| 国产网红主播福利一区二区| 久久成人羞羞网站| 日韩三级av在线播放| 午夜久久久久久电影| 欧美三级日韩三级国产三级| 一区二区三区不卡在线观看| 91免费精品国自产拍在线不卡| 国产片一区二区三区| 国产酒店精品激情| 久久精品一区二区三区不卡牛牛| 五月天中文字幕一区二区| 欧美精品乱码久久久久久按摩|