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

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

?? gui_sif_prop.c

?? 這套代碼已經成功一直到S3C44B0X開發板上
?? 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        : GUI_SIF_Prop.c
Purpose     : Implementation of system independend fonts
---------------------------END-OF-HEADER------------------------------
*/

#include "GUI_Private.h"

/*********************************************************************
*
*       Static code
*
**********************************************************************
*/

/*********************************************************************
*
*       _GetNumCharAreas
*/
static int _GetNumCharAreas(const GUI_FONT GUI_UNI_PTR * pFont) {
  U16 NumCharAreas;
  const U8 * pData;
  pData = (const U8 *)pFont->p.pFontData + 14 /* Skip ID, YSize, YDist, Baseline, LHeight and CHeight */;
  NumCharAreas = GUI__Read16(&pData);
  return NumCharAreas;
}

/*********************************************************************
*
*       _GetpCharInfo
*/
static const U8 * _GetpCharInfo(const GUI_FONT GUI_UNI_PTR * pFont, U16P c) {
  const U8 * pCharArea, * pCharInfo;
  int NumCharAreas;
  NumCharAreas = _GetNumCharAreas(pFont);                 /* Get # of char areas */
  pCharArea = (const U8 *)pFont->p.pFontData 
              + sizeof(GUI_SI_FONT);                      /* Set char area pointer to first char area */
  pCharInfo = pCharArea
              + sizeof(GUI_SIF_CHAR_AREA) * NumCharAreas; /* Set char info pointer to first character info */
  do {
    GUI_SIF_CHAR_AREA CharArea;
    CharArea.First    = GUI__Read16(&pCharArea);
    CharArea.Last     = GUI__Read16(&pCharArea);
    if ((c >= CharArea.First) && (c <= CharArea.Last)) {
      pCharInfo += sizeof(GUI_SIF_CHARINFO) * (c - CharArea.First);
      return pCharInfo;
    }
    pCharInfo += sizeof(GUI_SIF_CHARINFO) * (CharArea.Last - CharArea.First + 1);
  } while(--NumCharAreas);
  return 0;
}

/*********************************************************************
*
*       Exported code
*
**********************************************************************
*/

/*********************************************************************
*
*       GUI_SIF_DispChar
*/
static void _GUI_SIF_DispChar(U16P c) {
  const U8 * pCharInfo, * pData;
  pCharInfo = _GetpCharInfo(GUI_Context.pAFont, c);
  if (pCharInfo) {
    GUI_DRAWMODE DrawMode, OldDrawMode;
    GUI_SIF_CHARINFO CharInfo;
    CharInfo.XSize        = GUI__Read16(&pCharInfo);
    CharInfo.XDist        = GUI__Read16(&pCharInfo);
    CharInfo.BytesPerLine = GUI__Read16(&pCharInfo);
                            GUI__Read16(&pCharInfo); /* Dummy */
    CharInfo.OffData      = GUI__Read32(&pCharInfo);
    pData = (const U8 *)GUI_Context.pAFont->p.pFontData + CharInfo.OffData;
    DrawMode = GUI_Context.TextMode;
    OldDrawMode  = LCD_SetDrawMode(DrawMode);
    LCD_DrawBitmap(GUI_Context.DispPosX, GUI_Context.DispPosY,
                   CharInfo.XSize,
									 GUI_Context.pAFont->YSize,
                   GUI_Context.pAFont->XMag,
									 GUI_Context.pAFont->YMag,
                   1,
                   CharInfo.BytesPerLine,
                   pData,
                   &LCD_BKCOLORINDEX);
    /* Fill empty pixel lines */
    if (GUI_Context.pAFont->YDist > GUI_Context.pAFont->YSize) {
      int YMag = GUI_Context.pAFont->YMag;
      int YDist = GUI_Context.pAFont->YDist * YMag;
      int YSize = GUI_Context.pAFont->YSize * YMag;
      if (DrawMode != LCD_DRAWMODE_TRANS) {
        LCD_COLOR OldColor = GUI_GetColor();
        GUI_SetColor(GUI_GetBkColor());
        LCD_FillRect(GUI_Context.DispPosX, 
                     GUI_Context.DispPosY + YSize, 
                     GUI_Context.DispPosX + CharInfo.XSize, 
                     GUI_Context.DispPosY + YDist);
        GUI_SetColor(OldColor);
      }
    }
    LCD_SetDrawMode(OldDrawMode); /* Restore draw mode */
    GUI_Context.DispPosX += CharInfo.XDist;
  }
}

/*********************************************************************
*
*       GUI_SIF_GetCharDistX
*/
static int _GUI_SIF_GetCharDistX(U16P c) {
  const U8 * pCharInfo;
  U16 DistX = 0;
  pCharInfo = _GetpCharInfo(GUI_Context.pAFont, c); /* Get pointer to char info data */
  if (pCharInfo) {
    pCharInfo += 2 /* Skip XSize */;
    DistX = GUI__Read16(&pCharInfo);
  }
  return DistX;
}

/*********************************************************************
*
*       GUI_SIF_GetFontInfo
*/
static void _GUI_SIF_GetFontInfo(const GUI_FONT GUI_UNI_PTR * pFont, GUI_FONTINFO * pfi) {
  const U8 * pData;
  pData = (const U8 *)pFont->p.pFontData + 4 /* Skip XSize and XDist */;
  pfi->Baseline = GUI__Read16(&pData);
  pfi->LHeight  = GUI__Read16(&pData);
  pfi->CHeight  = GUI__Read16(&pData);
  pfi->Flags    = GUI_FONTINFO_FLAG_PROP;
}

/*********************************************************************
*
*       GUI_SIF_IsInFont
*/
static char _GUI_SIF_IsInFont(const GUI_FONT GUI_UNI_PTR * pFont, U16 c) {
  const U8 * pCharInfo;
  GUI_USE_PARA(pFont);
  pCharInfo = _GetpCharInfo(GUI_Context.pAFont, c);
  return (pCharInfo) ? 1 : 0;
}

/*********************************************************************
*
*       GUI_SIF_TYPE_PROP
*/
const tGUI_SIF_APIList GUI_SIF_APIList_Prop = {
  _GUI_SIF_DispChar,
  _GUI_SIF_GetCharDistX,
  _GUI_SIF_GetFontInfo,
  _GUI_SIF_IsInFont
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av一区二区在线免费观看| 精品国产免费视频| 粉嫩av一区二区三区| 蜜桃视频一区二区三区在线观看| 亚洲va欧美va人人爽午夜| 亚洲精品成人精品456| 综合久久一区二区三区| 国产精品伦一区二区三级视频| 亚洲欧洲日产国码二区| 亚洲人精品一区| 亚洲午夜成aⅴ人片| 日韩国产欧美视频| 精品一区二区三区免费观看 | 欧美一级欧美三级在线观看| 欧美人与性动xxxx| 日韩欧美综合在线| 久久久久久久精| 国产精品另类一区| 亚洲午夜久久久| 美女一区二区三区在线观看| 国产.精品.日韩.另类.中文.在线.播放| 国产成都精品91一区二区三| 一本大道久久a久久精品综合| 欧美丝袜第三区| 日韩一区二区免费高清| 国产日韩欧美不卡| 亚洲激情五月婷婷| 青青草视频一区| 成人avav在线| 欧美伦理电影网| 久久久一区二区| 婷婷成人激情在线网| 国产麻豆一精品一av一免费| 一本久久综合亚洲鲁鲁五月天 | 久久久久久久一区| 一区视频在线播放| 日本怡春院一区二区| 大陆成人av片| 欧美一区二区三区在线观看| 日本一区二区动态图| 亚洲国产中文字幕在线视频综合| 国产做a爰片久久毛片| 色综合av在线| 久久夜色精品国产噜噜av| 洋洋成人永久网站入口| 激情五月婷婷综合网| 欧美亚洲高清一区二区三区不卡| 久久久久9999亚洲精品| 天天射综合影视| 欧美日韩久久久| 欧美韩日一区二区三区| 日韩中文字幕1| 日本高清不卡一区| 国产精品视频yy9299一区| 久久精品国产精品亚洲综合| 欧洲亚洲精品在线| 国产精品久久久久精k8| 国产在线视频一区二区| 欧美一级黄色录像| 亚洲国产精品麻豆| 91年精品国产| 中文字幕在线一区免费| 丰满少妇久久久久久久| 26uuu精品一区二区在线观看| 日精品一区二区三区| 色婷婷综合久色| 亚洲欧美激情在线| 波多野结衣亚洲| 国产精品久久夜| 成人激情小说乱人伦| 中文字幕成人av| 成人精品免费看| 国产精品日产欧美久久久久| 国产精品一区二区在线观看不卡| 欧美精品一区二| 国产精品一区专区| 欧美精品一区视频| 国产精品系列在线观看| 久久精品亚洲精品国产欧美kt∨ | 色狠狠av一区二区三区| 一区二区三区在线视频观看| 日本韩国精品一区二区在线观看| 亚洲欧美日韩人成在线播放| 91丨porny丨国产| 亚洲制服丝袜在线| 宅男噜噜噜66一区二区66| 天天操天天色综合| 欧美videofree性高清杂交| 色婷婷久久综合| 亚洲女人小视频在线观看| 91官网在线免费观看| 五月激情丁香一区二区三区| 欧美一区二区三区免费| 韩国中文字幕2020精品| 国产日韩欧美高清在线| 91色porny| 蜜臀av亚洲一区中文字幕| 久久综合久久综合亚洲| www.亚洲免费av| 五月综合激情网| 久久精品视频网| 色爱区综合激月婷婷| 日本成人在线视频网站| 国产欧美日韩亚州综合 | 亚洲国产成人一区二区三区| 99精品视频免费在线观看| 午夜视频在线观看一区二区三区| 欧美变态口味重另类| 99国产精品一区| 日日摸夜夜添夜夜添亚洲女人| 国产偷国产偷亚洲高清人白洁| 色综合天天做天天爱| 玖玖九九国产精品| 1024精品合集| 亚洲精品一区二区在线观看| 91麻豆高清视频| 国产一区免费电影| 亚洲第一成人在线| 国产精品久久精品日日| 日韩欧美你懂的| 91行情网站电视在线观看高清版| 久草精品在线观看| 午夜私人影院久久久久| 中文字幕日韩欧美一区二区三区| 26uuu国产电影一区二区| 欧美综合天天夜夜久久| 成人晚上爱看视频| 另类的小说在线视频另类成人小视频在线 | 欧美日韩免费在线视频| 成人午夜精品在线| 国内精品视频一区二区三区八戒 | 国产99久久久国产精品潘金 | 国产一区二区三区综合| 日韩国产一区二| 亚洲综合免费观看高清在线观看| 中文字幕成人av| 久久久噜噜噜久久人人看| 欧美精品aⅴ在线视频| av亚洲精华国产精华精华| 国产一区二区福利| 蜜臀av一级做a爰片久久| 五月婷婷综合网| 亚洲综合精品久久| 亚洲欧美日本韩国| 综合婷婷亚洲小说| 亚洲三级在线免费| 亚洲欧美另类久久久精品2019| 国产精品免费人成网站| 日本一区二区视频在线| 精品福利一二区| 精品国产一区二区精华| 日韩三级电影网址| 精品久久久久一区| 久久综合久久综合久久| 日韩免费观看2025年上映的电影 | 国产精品69毛片高清亚洲| 美国av一区二区| 久久91精品国产91久久小草| 国产在线视频一区二区三区| 国产福利一区二区三区视频在线 | 亚洲人吸女人奶水| 亚洲免费av高清| 亚洲综合清纯丝袜自拍| 国产一区美女在线| 成人午夜视频在线观看| 成人黄色av网站在线| 91亚洲男人天堂| 欧美日本一道本| 欧美成人精精品一区二区频| 欧美大度的电影原声| 国产日韩成人精品| 亚洲女女做受ⅹxx高潮| 偷拍自拍另类欧美| 精品一区二区影视| 成人听书哪个软件好| 欧美色男人天堂| xfplay精品久久| 亚洲欧洲精品一区二区三区不卡| 亚洲自拍与偷拍| 寂寞少妇一区二区三区| 成人aaaa免费全部观看| 欧美色图第一页| 精品久久久久久久久久久久久久久久久 | 91久久一区二区| 日韩精品专区在线| 国产精品久久久久永久免费观看| 一区二区三区影院| 久久国产精品区| 91免费版在线| 精品国产91乱码一区二区三区| 亚洲婷婷综合久久一本伊一区| 日韩在线卡一卡二| 不卡的看片网站| 91精品综合久久久久久| 国产精品久久久久桃色tv| 日韩精彩视频在线观看| 99视频精品在线| 久久伊人蜜桃av一区二区| 亚洲综合区在线| 成人久久视频在线观看|