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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? guiaachar2.c

?? uCGUI
?? C
字號:
/*************************************************************************************************************
                                                   uC/GUI
                                               嵌入式通用圖形軟件
File        : GUICharAA2.C
Purpose     : Display antialiased 2bpp
----------------------------------------------------------------------
Version-Date---Author-Explanation
----------------------------------------------------------------------
1.00.01 011031 JE     a) GL_DrawBitmap called instead of GUI_DrawBitmap
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>

/*
      ***********************************************************
      *                                                         *
      *       Static defines
      *                                                         *
      ***********************************************************
*/

#define MAX_CHAR_SIZE 100

/*
      ***********************************************************
      *                                                         *
      *       Static variables
      *                                                         *
      ***********************************************************
*/

/* used by transparent characters */
static const int aConvTable[4] = {0, 5, 10, 15};

/* used by non transparent characters */
static LCD_COLOR aColor[4];
static LCD_PIXELINDEX OldColorIndex, OldBkColorIndex;
static GUI_LOGPALETTE Palette = {4, 0, &aColor[0]};
static GUI_BITMAP Bitmap = {0, 0, 0, 2, 0, &Palette, 0};

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

static void DrawNoTrans(int x0, int y0, int XSize, int YSize, int BytesPerLine, const U8*pData) {
  if ((OldColorIndex   != LCD_COLORINDEX) || 
      (OldBkColorIndex != LCD_BKCOLORINDEX)) {
    int i;
    LCD_PIXELINDEX BkColorIndex = LCD_BKCOLORINDEX;
    LCD_PIXELINDEX ColorIndex   = LCD_COLORINDEX;
    LCD_COLOR BkColor = LCD_Index2Color(BkColorIndex);
    LCD_COLOR Color   = LCD_Index2Color(ColorIndex);
    aColor[0] = BkColor;
    for (i = 1; i < 3; i++) {
      U8 Intens;
      Intens = 5 * i;
      aColor[i] = LCD_AA_MixColors(Color, BkColor, Intens);
    }
    aColor[3] = Color;
    LCD_GetpPalConvTableUncached(&Palette);
    OldColorIndex = ColorIndex;
    OldBkColorIndex = BkColorIndex;
  }
  Bitmap.XSize = XSize;
  Bitmap.YSize = YSize;
  Bitmap.BytesPerLine = BytesPerLine;
  Bitmap.pData = pData;
  GL_DrawBitmap(&Bitmap, x0, y0);
}

static void DrawTrans(int x0, int y0, int XSize, int YSize, int BytesPerLine, const U8*pData) {
  int x, y;
  for (y = 0; y < YSize; y++) {
    const U8 *pData0 = pData;
    U8 Rem = XSize & 3;
    for (x = 0; x < XSize - 1; x += 4) {
      LCD_SetPixelAA(x + x0    , y0 + y, aConvTable[((*pData0  ) >> 6)       ]);
      LCD_SetPixelAA(x + x0 + 1, y0 + y, aConvTable[((*pData0  ) >> 4) & 0x03]);
      LCD_SetPixelAA(x + x0 + 2, y0 + y, aConvTable[((*pData0  ) >> 2) & 0x03]);
      LCD_SetPixelAA(x + x0 + 3, y0 + y, aConvTable[((*pData0++)     ) & 0x03]);
  	}
    if (Rem) {
      LCD_SetPixelAA(x + x0    , y0 + y, aConvTable[((*pData0  ) >> 6)       ]);
      if (Rem > 1) {
        LCD_SetPixelAA(x + x0 + 1, y0 + y, aConvTable[((*pData0  ) >> 4) & 0x03]);
        if (Rem > 2) {
          LCD_SetPixelAA(x + x0 + 2, y0 + y, aConvTable[((*pData0  ) >> 2) & 0x03]);
        }
      }
    }
    pData += 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 GUIPROP_AA2_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);
    if (DrawMode && GUI_TM_TRANS) {
      DrawTrans(GUI_Context.DispPosX, 
                GUI_Context.DispPosY,
                pCharInfo->XSize,
                GUI_Context.pAFont->YSize,
                BytesPerLine,
                (U8 const*)pCharInfo->pData
      );
    } else {
      DrawNoTrans(GUI_Context.DispPosX, 
                  GUI_Context.DispPosY,
                  pCharInfo->XSize,
                  GUI_Context.pAFont->YSize,
                  BytesPerLine,
                  (U8 const*)pCharInfo->pData
      );
    }
    LCD_SetDrawMode(OldDrawMode); /* Restore draw mode */
    GUI_Context.DispPosX += pCharInfo->XDist;
  }
}

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

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

char GUIPROP_AA2_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 */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丁香六月综合激情| 成人黄色国产精品网站大全在线免费观看 | 91免费看视频| 秋霞成人午夜伦在线观看| 国产精品免费视频观看| 欧美剧情电影在线观看完整版免费励志电影| 精品一区二区免费看| 亚洲一区二区三区四区在线免费观看| 久久婷婷一区二区三区| 欧美日韩色一区| 91视频国产观看| 国产成人精品一区二区三区四区 | 亚洲.国产.中文慕字在线| 国产喷白浆一区二区三区| 久久99精品国产.久久久久久 | 欧美日韩视频一区二区| av一区二区三区在线| 国产曰批免费观看久久久| 亚洲国产欧美另类丝袜| 日韩毛片高清在线播放| 久久美女艺术照精彩视频福利播放 | 欧美v国产在线一区二区三区| 91久久奴性调教| 91在线看国产| 成人av动漫在线| 国产盗摄精品一区二区三区在线| 久久精品国产亚洲一区二区三区 | 日韩高清不卡在线| 欧美一级爆毛片| www.亚洲人| av动漫一区二区| 91免费国产在线| 精品国产露脸精彩对白| 秋霞电影网一区二区| 91精品国产综合久久久蜜臀图片| 天天射综合影视| 国产亚洲欧美日韩日本| www.亚洲在线| 热久久免费视频| 亚洲精品一区在线观看| 国产电影精品久久禁18| 亚洲欧美日韩中文播放 | 国产福利电影一区二区三区| 久久尤物电影视频在线观看| 国产一区二区三区四| 日韩美女精品在线| 日韩欧美第一区| 一本色道久久综合精品竹菊| 久久精品av麻豆的观看方式| 国产精品久久久久7777按摩| 91精品国产入口| 欧美日韩欧美一区二区| 欧美性videosxxxxx| 99久久免费视频.com| 北岛玲一区二区三区四区| 久久青草国产手机看片福利盒子| 成人av网站免费| 成人av第一页| 99久久久国产精品| 91污片在线观看| 欧美最猛性xxxxx直播| 欧美美女一区二区在线观看| 欧美久久久久久蜜桃| 日韩精品中文字幕一区| 欧美日韩中文字幕一区二区| 精品污污网站免费看| 欧美岛国在线观看| 日本一区二区不卡视频| 中文字幕日韩欧美一区二区三区| 亚洲综合色区另类av| 欧美日韩性生活| 在线观看免费视频综合| 不卡视频在线看| 日本道色综合久久| 欧美日韩国产高清一区二区三区 | 99精品国产91久久久久久| 久久久久久久久久久久电影| 欧美日韩精品免费观看视频| 精品精品欲导航| 国产欧美日韩久久| 亚洲一级二级三级| 国内精品国产成人国产三级粉色| 成人蜜臀av电影| 91精品国产综合久久久蜜臀图片| 国产精品毛片大码女人| 亚洲国产精品影院| 国产成人精品www牛牛影视| 91麻豆精品一区二区三区| 91精品国产综合久久久蜜臀图片| 一区二区三区日韩精品| 久久综合色天天久久综合图片| 精品免费日韩av| 亚洲精品乱码久久久久久黑人| 蜜臀国产一区二区三区在线播放| 99久久综合精品| 日韩一级大片在线观看| 亚洲精品欧美在线| 国产激情视频一区二区在线观看| 欧美另类变人与禽xxxxx| 久久久精品免费免费| 丝袜亚洲另类欧美综合| 不卡影院免费观看| 久久香蕉国产线看观看99| 亚洲va中文字幕| 99久久久精品| 国产精品三级av| 国产美女娇喘av呻吟久久 | 中文字幕精品在线不卡| 热久久久久久久| 欧美日韩精品一区二区| 中文字幕在线观看一区二区| 国产一区免费电影| 日韩欧美激情四射| 日韩中文欧美在线| 欧美中文字幕一二三区视频| 中文字幕亚洲在| 高清不卡在线观看| 久久久久久久久97黄色工厂| 久久精品国产精品亚洲综合| 日韩一区二区三区在线观看| 亚洲777理论| 欧美午夜宅男影院| 一区二区成人在线视频| 91国偷自产一区二区三区观看| 中文字幕欧美国产| 懂色av中文字幕一区二区三区| 精品免费视频.| 极品少妇xxxx精品少妇| 日韩欧美一区二区三区在线| 日韩电影一二三区| 7799精品视频| 蜜桃视频一区二区| 日韩欧美一区二区免费| 精品中文字幕一区二区小辣椒| 日韩三级电影网址| 六月丁香综合在线视频| 日韩三级在线观看| 久99久精品视频免费观看| 日韩三级电影网址| 国产一区二区在线观看视频| 国产亚洲美州欧州综合国 | 欧美久久免费观看| 美女诱惑一区二区| 欧美精品一区二区在线播放| 国产精品中文字幕日韩精品| 久久精品视频在线免费观看 | 日韩欧美久久久| 亚洲成人tv网| 欧美一级视频精品观看| 免费av网站大全久久| 日韩欧美黄色影院| 国产成人自拍高清视频在线免费播放| 欧美国产日本视频| 91免费小视频| 日日欢夜夜爽一区| 日韩欧美二区三区| 国产a久久麻豆| 一区二区在线观看免费视频播放| 欧美亚洲综合色| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲精品在线网站| 97se亚洲国产综合在线| 亚洲第一电影网| 精品入口麻豆88视频| 成人av在线一区二区| 亚洲成av人片观看| 精品国产一区二区三区久久久蜜月| 国产.欧美.日韩| 亚洲国产sm捆绑调教视频| 欧美电影免费观看高清完整版在线 | 亚洲精选视频免费看| 欧美精品亚洲一区二区在线播放| 久久99久久99| 国产精品麻豆视频| 欧美日韩日日摸| 国产99久久久国产精品潘金网站| 亚洲精品国产品国语在线app| 91精品在线免费观看| 成人综合在线观看| 日韩av一区二区三区四区| 中文在线一区二区| 欧美日韩精品是欧美日韩精品| 国产成人综合亚洲网站| 一区二区三区欧美| 欧美变态凌虐bdsm| 91日韩一区二区三区| 国产一区二区三区久久久 | 午夜精品成人在线| 中文字幕精品一区二区精品绿巨人| 欧美私人免费视频| 成人免费观看av| 亚洲不卡在线观看| 国产精品国产三级国产| 欧美videossexotv100| 91黄色免费网站| 成人一区二区三区视频| 美女视频黄 久久| 一区二区在线观看免费视频播放| 国产偷国产偷精品高清尤物| 欧美日韩黄色影视|