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

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

?? guiaachar.c

?? uCGUI
?? C
字號:
/*************************************************************************************************************
                                                   uC/GUI
                                               嵌入式通用圖形軟件
File        : GUICharAA.C
Purpose     : Display antialiased
----------------------------------------------------------------------
Version-Date---Author-Explanation
----------------------------------------------------------------------

1.00.00 990922 RS     First release
----------------------------------------------------------------------
Known problems or limitations with current version
----------------------------------------------------------------------
Module needs cleanup and review, but is fully functional.
************************************************************************************************************/


#include "GUI_Private.H"
 

#include <stdio.h>
#include <string.h>

/*
      ***********************************************************
      *                                                         *
      *       Anti-aliased drawing                              *
      *                                                         *
      ***********************************************************
*/

static const U8 Bit2Mask0[] = {1<<7, 1<<5, 1<<3, 1<<1};
static const U8 Bit2Mask1[] = {1<<6, 1<<4, 1<<2, 1<<0};

typedef void tSetPixelAA(int x, int y, U8 Intens);

static void Draw(int x0, int y0, int XSize, int YSize, int BytesPerLine, const U8*pData) {
    int x, y;
    tSetPixelAA* pfSetPixelAA;
    pfSetPixelAA = (GUI_Context.TextMode & GUI_TM_TRANS)
                 ? LCD_SetPixelAA : LCD_SetPixelAA_NoTrans;
	  for (y=0; y<YSize; y++) {
  	  const U8* pData0 = pData;
	    const U8* pData1 = pData+BytesPerLine;
  	  for (x=0; x<XSize; x++) {
        int PixelCnt=0;
        int Mask0 = Bit2Mask0[x&3];
        int Mask1 = Bit2Mask1[x&3];
			  if ((*pData0) & Mask0)
			    PixelCnt++;
			  if ((*pData0) & Mask1)
			    PixelCnt++;
			  if ((*pData1) & Mask0)
			    PixelCnt++;
			  if ((*pData1) & Mask1)
			    PixelCnt++;
        if ((x&3) ==3) {
          pData0++;
          pData1++;
			  }
        switch (PixelCnt) {
        case 4: LCD_HL_DrawPixel(x0+x,y0+y);      break;
        case 3: (*pfSetPixelAA) (x0+x,y0+y, 12); break;
        case 2: (*pfSetPixelAA) (x0+x,y0+y, 8);  break;
        case 1: (*pfSetPixelAA) (x0+x,y0+y, 4);  break;
			  }
  	  }
      pData+=2*BytesPerLine;
	  }
}

/*
      ***********************************************************
      *                                                         *
      *       Font handling                                     *
      *                                                         *
      ***********************************************************
*/

static const GUI_FONT_PROP* GUIPROP_FindChar(const GUI_FONT_PROP* pProp, U16P c) {
  for (pProp = GUI_Context.pAFont->p.pProp; pProp; pProp=(const GUI_FONT_PROP*) pProp->pNext) {
    if ((c>=pProp->First) && (c<=pProp->Last))
      break;
  }
  return pProp;
}

void GUIPROPAA_DispChar(U16P c) 
{
  int BytesPerLine;
  GUI_DRAWMODE DrawMode = GUI_Context.TextMode;
  const GUI_FONT_PROP* pProp = GUIPROP_FindChar(GUI_Context.pAFont->p.pProp, c);
  if (pProp) {
    GUI_DRAWMODE OldDrawMode;
    const GUI_CHARINFO* pCharInfo = pProp->paCharInfo+(c-pProp->First);
    BytesPerLine = pCharInfo->BytesPerLine;
    OldDrawMode  = LCD_SetDrawMode(DrawMode);
    Draw  ( GUI_Context.DispPosX, GUI_Context.DispPosY,
                       (pCharInfo->XSize+1)/2,
                       GUI_Context.pAFont->YSize,
                       BytesPerLine,
                       (U8 const*) pCharInfo->pData
                       );
    LCD_SetDrawMode(OldDrawMode); /* Restore draw mode */
    GUI_Context.DispPosX += (pCharInfo->XDist+1)/2;
  }
}

int GUIPROPAA_GetCharDistX(U16P c) 
{
  int r;
  const GUI_FONT_PROP* pProp = GUIPROP_FindChar(GUI_Context.pAFont->p.pProp, c);
  r = (pProp) ? (pProp->paCharInfo+(c-pProp->First))->XSize : 0;
  return (r+1)/2;
}

void GUIPROPAA_GetFontInfo(void*pFont, GUI_FONTINFO* pfi) 
{
  GUI_USE_PARA(pFont);
  pfi->Flags = GUI_FONTINFO_FLAG_PROP | GUI_FONTINFO_FLAG_AA;
}

char GUIPROPAA_IsInFont(void*pFont, U16 c) 
{
  const GUI_FONT_PROP* pProp = GUIPROP_FindChar(((GUI_FONT*)pFont)->p.pProp, c);
  return (pProp==NULL) ? 0 : 1;
}


/* End of file */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久蜜桃一区二区| 亚洲国产日韩综合久久精品| 国产精品视频在线看| 亚洲综合久久av| 国产一区二区在线电影| 在线精品国精品国产尤物884a| 日韩精品中文字幕在线一区| 亚洲欧洲韩国日本视频| 国内精品自线一区二区三区视频| 91久久人澡人人添人人爽欧美| 久久在线观看免费| 五月激情综合婷婷| 色天使色偷偷av一区二区| 欧美国产精品劲爆| 激情久久五月天| 欧美精品第1页| 亚洲欧美色图小说| 91免费看片在线观看| 国产精品女同一区二区三区| 久久不见久久见免费视频1| 欧美午夜在线一二页| 亚洲免费大片在线观看| 波多野结衣在线一区| 欧美精品一区二区久久婷婷| 免费人成在线不卡| 日韩欧美专区在线| 日韩二区三区四区| 日韩亚洲欧美中文三级| 日韩国产成人精品| 91精品福利在线一区二区三区 | 午夜不卡av在线| 色婷婷亚洲婷婷| 亚洲免费在线电影| 91久久久免费一区二区| 亚洲精品日韩专区silk | 国产高清视频一区| 久久青草欧美一区二区三区| 国精产品一区一区三区mba视频| 欧美电视剧免费全集观看| 久久se精品一区二区| 欧美一区二区在线视频| 蜜桃视频一区二区| 久久久影视传媒| 丁香桃色午夜亚洲一区二区三区| 欧美国产激情一区二区三区蜜月| 成人18视频日本| 亚洲三级电影网站| 欧美视频在线播放| 麻豆精品一区二区三区| 精品国产凹凸成av人网站| 国产一区二区三区综合| 国产精品视频yy9299一区| voyeur盗摄精品| 亚洲伊人色欲综合网| 4438x亚洲最大成人网| 青青草原综合久久大伊人精品优势| 欧美高清视频不卡网| 久久超碰97中文字幕| 国产三级精品三级在线专区| 91在线你懂得| 图片区日韩欧美亚洲| 久久免费国产精品 | 国产激情一区二区三区四区 | 成人在线视频一区二区| 一个色在线综合| 日韩欧美一级特黄在线播放| 国产a级毛片一区| 亚洲第一福利视频在线| 久久亚洲精精品中文字幕早川悠里| 99这里只有久久精品视频| 亚洲综合丁香婷婷六月香| 精品黑人一区二区三区久久| av中文字幕在线不卡| 青青草原综合久久大伊人精品 | 午夜精品免费在线| 亚洲午夜视频在线观看| 欧美精品一区二区三区蜜桃视频 | 一区二区三区国产| 欧美一卡二卡在线观看| 国产精品888| 亚洲综合一区二区| 精品久久国产字幕高潮| 欧美午夜不卡在线观看免费| 黄色资源网久久资源365| 中文字幕一区在线观看视频| 欧美丝袜丝交足nylons| 国产九九视频一区二区三区| 亚洲精品高清在线| 日本韩国欧美在线| 美女视频网站久久| 亚洲免费观看高清完整版在线观看熊 | 欧美巨大另类极品videosbest | 亚洲美女区一区| 精品日韩一区二区三区| 91色九色蝌蚪| 另类综合日韩欧美亚洲| 亚洲韩国精品一区| 亚洲国产高清不卡| 日韩视频一区在线观看| 在线看国产一区二区| 激情综合色丁香一区二区| 亚洲精品v日韩精品| 国产欧美日韩在线看| 91精品国产麻豆| 国产jizzjizz一区二区| 麻豆国产一区二区| 日韩综合小视频| 伊人一区二区三区| 欧美日韩一区二区三区四区五区| 大胆亚洲人体视频| 国产成人在线视频网址| 国产在线不卡一区| 蜜乳av一区二区| 丝袜a∨在线一区二区三区不卡| 国产精品久久福利| 日韩欧美国产午夜精品| 欧美一区二区啪啪| 欧美精品一二三| 99久久er热在这里只有精品66| 激情成人午夜视频| 国内精品久久久久影院色| 老司机精品视频一区二区三区| 一区二区三区日韩欧美| 亚洲激情图片一区| 一区二区三区在线观看欧美| 国产精品国产三级国产普通话蜜臀| 日韩欧美国产1| 91精品国产一区二区| 欧美日韩视频在线观看一区二区三区| 国产一区在线精品| 99久免费精品视频在线观看| 99视频一区二区| 91捆绑美女网站| 91国偷自产一区二区开放时间 | 亚洲高清视频的网址| 亚洲精品成a人| 日本成人在线视频网站| 日韩黄色免费电影| 麻豆精品蜜桃视频网站| 6080亚洲精品一区二区| 欧美亚洲一区三区| 7777精品伊人久久久大香线蕉完整版| 欧美tickling挠脚心丨vk| 精品少妇一区二区三区日产乱码 | 粉嫩av一区二区三区在线播放| 国产91在线看| 99久久综合国产精品| 91久久精品日日躁夜夜躁欧美| 在线观看国产91| 欧美精品一区二区久久婷婷| 国产精品你懂的在线欣赏| 国产精品夫妻自拍| 亚洲主播在线播放| 久久爱另类一区二区小说| 国产69精品一区二区亚洲孕妇| 99精品久久久久久| 制服丝袜一区二区三区| 欧美电影免费观看高清完整版在线| 日韩免费高清电影| 国产精品欧美经典| 午夜私人影院久久久久| 午夜精品aaa| 99re8在线精品视频免费播放| 欧洲在线/亚洲| 久久综合久色欧美综合狠狠| 国产精品久久久久久亚洲伦| 亚洲综合色自拍一区| 国产一区二区三区最好精华液| 91亚洲精品久久久蜜桃| 日韩欧美国产综合一区 | www亚洲一区| 樱桃国产成人精品视频| 久久精品国产成人一区二区三区| 蜜桃av噜噜一区| 成人一区二区三区视频| 8x8x8国产精品| 亚洲欧洲另类国产综合| 日韩av在线发布| 99久久综合国产精品| 欧美日韩成人一区| 亚洲视频一区在线| 国产乱码精品1区2区3区| 欧美人动与zoxxxx乱| 日本一区二区三区视频视频| 午夜视频久久久久久| 成人综合在线观看| 国产午夜精品一区二区三区四区| 亚洲国产一区二区三区| 成人免费视频caoporn| 日韩午夜激情免费电影| 国产精品区一区二区三| 久久精品国产亚洲a| av一区二区三区| 色国产精品一区在线观看| 日韩一区在线播放| 国产aⅴ精品一区二区三区色成熟| 欧美美女激情18p| 国产日韩欧美高清| 午夜a成v人精品| 欧美精品在线视频|