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

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

?? gchar.c

?? ARM7(s3c44b0)開發(fā)平臺(tái)LCD驅(qū)動(dòng)程序
?? C
字號(hào):
/*
;************************************************************************************************************
;*				    				     北京達(dá)盛科技有限公司
;*                                     	    研    發(fā)    部
;*
;*                                 	    http://www.techsine.com
;*
;*--------------------------------------------- 文件信息 ----------------------------------------------------                                      
;*
;* 文件名稱 : Gchar.c	
;* 文件功能 : 該文件為GUI的字符顯示程序。
;* 補(bǔ)充說明 : 
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : ARM開發(fā)小組
;* 修改日期 : 2004/00/00
;* 版本聲明 : V1.0.1
;*-------------------------------------------- 歷史版本信息 -------------------------------------------------
;* 文件作者 : ARM開發(fā)小組
;* 創(chuàng)建日期 : 2004/07/07
;* 版本聲明 : v1.0.0
;*-----------------------------------------------------------------------------------------------------------
*************************************************************************************************************
*/
	#include "..\Glib\Glib.h"
	
	Context GUI_Context;
	extern U16 LCD_BKCOLOR;
	
	void 	DispString(const I8 *s); 
 	U16 	GUI_GetLineLen(const I8 *s, U16 MaxLen); 
	U16 	GUI_GetLineDistX(const I8 *s, U16 Len); 
	U16 	GUI_GetCharDistX(void);
	void 	GUI_DispLine(const I8 *s, I16 Len, const GUI_RECT* pr); 
	void 	GL_DispChar(U16 c); 
	U16 	GUI_DB2UC_CN (U8 Byte0, U8 Byte1); 
	void 	GUI_DispNextLine(void); 
	U16 	GUI_GetFontDistY(void); 
	void 	GUIMONO_DispChar(U16P c); 
	void 	LCD_DrawBitmap   (U16 x0, U16 y0,
                       		U16 xsize, U16 ysize,
                       		U16 xMul, U16 yMul,
                       		U16 BitsPerPixel,
                       		U16 BytesPerLine,
                       		const U8* pPixel);
/*
*************************************************************************************************************
- 函數(shù)名稱 : const Set_Font(const GUI_FONT* pNewFont)
- 函數(shù)說明 : 設(shè)定字體函數(shù)
- 輸入?yún)?shù) : color
- 輸出參數(shù) : 無
*************************************************************************************************************
*/
void  Set_Font( GUI_FONT* pFont) 
{
  	if (pFont)
  	{
    	GUI_Context.pAFont = pFont;
	}
}

/*
*************************************************************************************************************
- 函數(shù)名稱 : void DispStringAt(const U8 *s, I16 x, I16 y)
- 函數(shù)說明 : 顯示字符串的API
- 輸入?yún)?shù) : s,x,y
- 輸出參數(shù) : 無
*************************************************************************************************************
*/
void Disp_String(const I8 *s, I16 x, I16 y) 
{
  	GUI_Context.DispPosX = x;
  	GUI_Context.DispPosY = y;
  	DispString(s);
}

/*
*************************************************************************************************************
- 函數(shù)名稱 : void DispString(const U8 *s)
- 函數(shù)說明 : 顯示字符串
- 輸入?yún)?shù) : s
- 輸出參數(shù) : 無
*************************************************************************************************************
*/

void DispString(const I8 *s) 
{
  	I16 	xOrg;
  	U8 		FontSizeY;
  	
  	if (!s)
    	return;
 
  	FontSizeY = GUI_Context.pAFont->YDist;
  	
  	xOrg = GUI_Context.DispPosX;
  	
  	for (; *s; s++) 
  	{
    	GUI_RECT r;
    	
    	U16 LineLen= GUI_GetLineLen(s,0x7fff);
    	
    	U16 xLineSize = GUI_GetLineDistX(s, LineLen);
    	
    	r.x0 = GUI_Context.DispPosX;
    	r.x1 = r.x0 + xLineSize-1;    
    	r.y0 = GUI_Context.DispPosY;
    	r.y1 = r.y0 + FontSizeY-1; 
    	   
    	GUI_DispLine(s, LineLen, &r);
    	
    	GUI_Context.DispPosY = r.y0;
    	
    	s += LineLen;
    	
    	if ((*s=='\n') || (*s=='\r')) 
    	{
      		GUI_Context.DispPosX = GUI_Context.LBorder;
      		
       		if (*s=='\n')
        		GUI_Context.DispPosY += GUI_GetFontDistY();
    	} 
    	else 
    	{
      		GUI_Context.DispPosX = r.x0+xLineSize;
    	}
    	if (*s==0)    			
      		break;
  	}
}
/*
*************************************************************************************************************
- 函數(shù)名稱 : U16 GUI_GetLineLen(const U8 *s, U16 MaxLen) 
- 函數(shù)說明 : 得到顯示字符串的長度數(shù)
- 輸入?yún)?shù) : s,MaxLen
- 輸出參數(shù) : len
*************************************************************************************************************
*/
U16 GUI_GetLineLen(const I8 *s, U16 MaxLen) 
{
  	U16 Len =0;
  	
  	if (!s)
    	return 0;
    	
  	{
    	U8 c0;
    	
    	U8 CNActive = 0;
    
    	while (((c0 = *(U8*)s) != 0) && Len < MaxLen) 
    	{
      		s++;
      		if (CNActive) 
      		{
        		switch (c0) 
        		{
        			case CHINESE_ENDCHAR: //case GUI_UC_ENDCHAR: 
        				CNActive = 0; 
        				break;
        			default: 
        				Len++; s++;
        		}
      		} 
      		else 
      		{ 									
        		switch (c0) 
        		{
        			case CHINESE_STARTCHAR: //case GUI_UC_STARTCHAR: 
        				CNActive = 1; 
        				break;
        			
        			case '\n': 
        				return Len;
        			
        			case '\r': 
        				return Len;
        		}
      		}
      		Len++;
    	}
  	}
  return Len;
}
/*
*************************************************************************************************************
- 函數(shù)名稱 : U16 GUI_GetLineDistX(const U8 GUI_FAR *s, U16 Len)
- 函數(shù)說明 : 得到顯示字符串的長度
- 輸入?yún)?shù) : 無
- 輸出參數(shù) : 無
*************************************************************************************************************
*/

U16 GUI_GetLineDistX(const I8 *s, U16 Len) 
{
  	U16 Dist =0;
  	U8  c1;
    {
      	U8 c0;
      	U8 CNActive=0;
      	
      	while (((c0 = *(U8*)s) !=0) && Len >0) 
      	{
        	s++; Len--;
        	
        	if (CNActive) 
        	{
          		if (c0 == CHINESE_ENDCHAR) //GUI_UC_ENDCHAR)
            	{
            		CNActive = 0;
            	}
          		else 
          		{
            		c1 = *(U8*)s++;
            		Len--;
            		Dist += GUI_GetCharDistX();
          		}
        	} 
        	else 
        	{ 							
          		if (c0 == CHINESE_STARTCHAR) //GUI_UC_STARTCHAR)
            		CNActive = 1;
          		else
            		Dist += GUI_GetCharDistX();
        	}
      	}
  	}
  return Dist;
}

/*
*************************************************************************************************************
- 函數(shù)名稱 : U16 GUI_GetCharDistX(U16 c)
- 函數(shù)說明 : 得到單個(gè)字符的X方向長度
- 輸入?yún)?shù) : 無
- 輸出參數(shù) : 無
*************************************************************************************************************
*/

U16 GUI_GetCharDistX(void)
{
   	const GUI_FONT_MONO* pMono = GUI_Context.pAFont->pMono;
  	return pMono->XDist;
}

/*
*************************************************************************************************************
- 函數(shù)名稱 : void GUI_DispLine(const U8 *s, U16 Len, const GUI_RECT* pr)
- 函數(shù)說明 : 顯示行字符的API
- 輸入?yún)?shù) : 無
- 輸出參數(shù) : 無
*************************************************************************************************************
*/

void GUI_DispLine(const I8 *s, I16 Len, const GUI_RECT* pr) 
{
  	GUI_RECT r;
  	U8 c0;
    U8 CNActive = 0;
    
  	r = *pr;
    GUI_Context.DispPosX = r.x0;
    GUI_Context.DispPosY = r.y0;
    
    while (--Len >=0) 
    {
      	c0 = *(U8*)s++;
      	
      	if (CNActive) 
      	{
        	if (c0 == CHINESE_ENDCHAR)//GUI_UC_ENDCHAR)
        	{
          		CNActive = 0;
        	}
        	else 
        	{
          		U8  c1 = *(U8*)s++;
          		Len--;
          		GL_DispChar (GUI_DB2UC_CN(c0, c1));
        	}
      	} 
      	else 
      	{ 					
        	if (c0 == CHINESE_STARTCHAR)//GUI_UC_STARTCHAR)
          		CNActive = 1;
        	else
          		GL_DispChar(c0);
      	}
    }
}

/*
*************************************************************************************************************
- 函數(shù)名稱 : void GL_DispChar(U16 c)
- 函數(shù)說明 : 顯示字符
- 輸入?yún)?shù) : 無
- 輸出參數(shù) : 無
*************************************************************************************************************
*/

void GL_DispChar(U16 c) 
{
  	if (c == '\n') 
  	{
    	GUI_DispNextLine();
  	} 
  	else 
  	{
    	if (c != '\r') 
    	{
      		GUIMONO_DispChar(c);
    	}
  	}
}

/*
*************************************************************************************************************
- 函數(shù)名稱 : U16 GUI_DB2UC_CN (U8 Byte0, U8 Byte1)
- 函數(shù)說明 : 內(nèi)碼轉(zhuǎn)換
- 輸入?yún)?shù) : 無
- 輸出參數(shù) : 無
*************************************************************************************************************
*/

U16 GUI_DB2UC_CN (U8 Byte0, U8 Byte1) 
{
  	U8 GB2312_HZK_QU_CODE;
  	U8 GB2312_HZK_WEI_CODE;
  
  	GB2312_HZK_QU_CODE   =  Byte0;       
  	GB2312_HZK_WEI_CODE  =  Byte1;
  	GB2312_HZK_QU_CODE  -=  0xa1;                       //內(nèi)碼轉(zhuǎn)換
  	GB2312_HZK_WEI_CODE -=  0xa1;
  	return (GB2312_HZK_QU_CODE*94 + GB2312_HZK_WEI_CODE);
}

/*
*************************************************************************************************************
- 函數(shù)名稱 : void GUI_DispNextLine(void) 
- 函數(shù)說明 : 從下一行顯示
- 輸入?yún)?shù) : 無
- 輸出參數(shù) : 無
*************************************************************************************************************
*/

void GUI_DispNextLine(void) 
{
  	GUI_Context.DispPosY += GUI_GetFontDistY();
  	GUI_Context.DispPosX  = GUI_Context.LBorder;
}

/*
*************************************************************************************************************
- 函數(shù)名稱 : U16 GUI_GetFontDistY(void)
- 函數(shù)說明 : 得到字體的Y大小
- 輸入?yún)?shù) : 無
- 輸出參數(shù) : r
*************************************************************************************************************
*/

U16 GUI_GetFontDistY(void) 
{
  	U16 r;
  	r = GUI_Context.pAFont->YDist * GUI_Context.pAFont->YMag;
  	return r;
}

/*
*************************************************************************************************************
- 函數(shù)名稱 : void GUIMONO_DispChar(U16P c)
- 函數(shù)說明 : 單字體顯示
- 輸入?yún)?shù) : c
- 輸出參數(shù) : 無
*************************************************************************************************************
*/

void GUIMONO_DispChar(U16P c) 
{
  	I16 c0, c1;
  	U8 * pd;
  	U16 x = GUI_Context.DispPosX;
  	U16 y = GUI_Context.DispPosY;
																	
  	const GUI_FONT_MONO* pMono = GUI_Context.pAFont->pMono;
  	U16 FirstChar = pMono->FirstChar;
  																	
     																	
	if ((c >= (U16P)FirstChar) &&(c <= (U16P)pMono->LastChar)) 
  	{
    	pd = (U8*)pMono->pData;
    	c0 = ((U16)c) - FirstChar;
    	c1 = -1;
  	} 
  	else 
  	{

  	}
  	if (c0!=-1) 
  	{
    	U16 BytesPerChar = GUI_Context.pAFont->YSize*pMono->BytesPerLine;
     	U16 XSize = pMono->XSize;
    	U16 YSize = GUI_Context.pAFont->YSize;
  
        LCD_DrawBitmap( x, y,
                         	XSize, YSize,
                        	GUI_Context.pAFont->XMag,  GUI_Context.pAFont->YMag,
                         	1,     
                         	pMono->BytesPerLine,
                         	pd + c0* BytesPerChar);
    }
  	GUI_Context.DispPosX += pMono->XDist;
}

/*
*************************************************************************************************************
- 函數(shù)名稱 : LCD_DrawBitmap
- 函數(shù)說明 : LCD畫API
- 輸入?yún)?shù) : 
- 輸出參數(shù) : 無
*************************************************************************************************************
*/

void LCD_DrawBitmap   (U16 x0, U16 y0,
                       U16 xsize, U16 ysize,
                       U16 xMul, U16 yMul,
                       U16 BitsPerPixel,
                       U16 BytesPerLine,
                       const U8* pPixel) 
{
  	U16 x1, y1;
  	const U16* pTrans;
  	U16 Diff = 0;
  	
  	y1 = y0+ysize-1;
  	x1 = x0+xsize-1;
 
	pTrans = (BitsPerPixel != 1) ? NULL : &LCD_BKCOLOR;
		
  	if ((xMul==1) && (yMul==1)) 
  	{
      	LCD_L0_DrawBitmap(x0,y0, xsize, ysize, BitsPerPixel, BytesPerLine, pPixel, Diff, pTrans);
  	} 
  	else 
  	{
    }
}
/*
*****************************************************************************************************************
**                                                  結(jié)束文件                                                   **
*****************************************************************************************************************
*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97久久精品人人做人人爽50路| 成人av手机在线观看| 欧美精品高清视频| 亚洲成人自拍一区| 欧美写真视频网站| 一区二区三区欧美日韩| 91高清视频在线| 亚洲国产欧美日韩另类综合| 在线观看免费成人| 亚洲国产成人porn| 欧美日韩激情一区| 首页国产欧美久久| 这里只有精品视频在线观看| 蜜臀久久99精品久久久画质超高清| 欧美撒尿777hd撒尿| 日韩中文字幕91| 日韩一级片在线观看| 蜜桃av噜噜一区| 久久亚洲精品小早川怜子| 国产精品中文字幕欧美| 国产欧美一区二区精品婷婷 | 一区二区三区日韩精品视频| 色综合天天天天做夜夜夜夜做| 国产精品传媒入口麻豆| 97精品国产露脸对白| 亚洲精品一二三区| 欧美日韩三级一区| 日本特黄久久久高潮| 日韩一区二区三| 韩国一区二区视频| 国产精品毛片久久久久久久| 91免费看`日韩一区二区| 一区二区三区在线观看欧美| 欧美日韩一区二区三区四区| 热久久国产精品| 久久久精品影视| 99精品欧美一区| 亚洲超碰精品一区二区| 日韩精品一区二区三区中文不卡| 国产乱码字幕精品高清av| 亚洲欧洲国产日本综合| 欧美午夜在线一二页| 麻豆91在线观看| 国产精品久久久久影院亚瑟| 欧美在线999| 九色综合狠狠综合久久| 国产精品视频一二三区| 欧美视频完全免费看| 麻豆精品一区二区综合av| 中文字幕乱码日本亚洲一区二区 | 欧美久久久久久久久中文字幕| 蜜乳av一区二区| 一区视频在线播放| 欧美理论片在线| 国产一区视频导航| 亚洲日本一区二区| 555夜色666亚洲国产免| 国产九色sp调教91| 一区二区三区日韩在线观看| 精品美女被调教视频大全网站| 成人丝袜视频网| 午夜视频在线观看一区二区| 久久这里只有精品视频网| 一本色道久久综合精品竹菊| 美女尤物国产一区| 亚洲少妇最新在线视频| 日韩一级高清毛片| 99久久精品免费观看| 麻豆精品一区二区综合av| 椎名由奈av一区二区三区| 日韩视频免费观看高清完整版 | 亚洲高清不卡在线| 久久久久久久久一| 欧美色男人天堂| 国产suv精品一区二区6| 亚洲不卡av一区二区三区| 国产亚洲成年网址在线观看| 欧美日韩免费一区二区三区 | 91黄色免费版| 国产乱码精品一区二区三区忘忧草| 亚洲综合视频在线观看| 中文字幕不卡的av| 欧美一卡二卡三卡| 欧美在线视频不卡| 不卡一区二区三区四区| 狠狠色丁香婷婷综合| 亚洲小说欧美激情另类| 国产精品国产三级国产普通话99| 日韩一区二区三区四区五区六区| 一本色道久久加勒比精品| 黑人精品欧美一区二区蜜桃| 天天av天天翘天天综合网色鬼国产 | 9191成人精品久久| 99视频热这里只有精品免费| 国产在线看一区| 日韩av一级片| 亚洲国产裸拍裸体视频在线观看乱了| 国产女人水真多18毛片18精品视频 | 欧美日韩视频在线观看一区二区三区 | 一区二区三区四区乱视频| 国产日产欧美一区| 精品国产麻豆免费人成网站| 精品视频在线免费| 91免费视频网| av电影天堂一区二区在线 | 日本人妖一区二区| 亚洲一线二线三线久久久| 亚洲天堂中文字幕| 中文字幕第一区第二区| 久久久精品人体av艺术| 日韩欧美亚洲国产另类| 欧美精品第1页| 欧美日韩和欧美的一区二区| 91国偷自产一区二区三区观看| eeuss鲁一区二区三区| 国产+成+人+亚洲欧洲自线| 精品一区二区三区欧美| 男女性色大片免费观看一区二区| 亚洲成av人片在www色猫咪| 亚洲图片一区二区| 亚洲一区免费视频| 亚洲一区二区影院| 亚洲图片欧美一区| 亚洲成人激情综合网| 亚洲国产欧美在线| 天天综合网 天天综合色| 首页亚洲欧美制服丝腿| 日本成人在线网站| 久久精品免费看| 精品夜夜嗨av一区二区三区| 精品中文字幕一区二区| 九色综合狠狠综合久久| 国产在线精品一区二区三区不卡 | 日韩欧美亚洲国产精品字幕久久久| 欧美一区二区视频在线观看2020| 欧美日韩精品是欧美日韩精品| 欧美性三三影院| 在线成人高清不卡| 欧美一区二区视频在线观看2020| 日韩女优电影在线观看| 久久蜜桃一区二区| 欧美国产日韩精品免费观看| 国产精品久久久久影院色老大| 亚洲欧美日韩一区二区| 一区二区三区四区不卡在线| 亚洲一区二区三区小说| 视频一区中文字幕国产| 久久99精品久久久久| 国精产品一区一区三区mba视频| 国产精品资源站在线| 国产一区二区久久| 成人免费av在线| 99精品视频一区| 欧美色精品在线视频| 91精品国产综合久久久蜜臀粉嫩| 日韩欧美国产一区二区三区| 久久一日本道色综合| 国产欧美精品一区二区色综合朱莉| 国产精品久久久久一区二区三区共| 亚洲欧美二区三区| 日日摸夜夜添夜夜添国产精品 | 欧美日韩一级视频| 精品日韩欧美在线| 中文字幕一区二区三区四区 | 国产一区二区导航在线播放| 懂色av一区二区夜夜嗨| 91影视在线播放| 欧美日产在线观看| 久久精品亚洲国产奇米99| 国产精品福利电影一区二区三区四区| 伊人性伊人情综合网| 日本午夜精品视频在线观看| 国产成人精品在线看| 一本久道久久综合中文字幕| 欧美肥妇毛茸茸| 国产视频911| 一区二区三国产精华液| 麻豆精品在线看| 91亚洲资源网| 7777精品伊人久久久大香线蕉| 久久久久久久久久久久久久久99| 亚洲女人****多毛耸耸8| 青青草精品视频| 99久久综合精品| 日韩美女视频一区二区在线观看| 国产精品美女一区二区在线观看| 亚洲gay无套男同| 国产成人a级片| 欧美日韩成人一区二区| 久久久激情视频| 偷拍日韩校园综合在线| 成人综合激情网| 欧美久久高跟鞋激| 国产精品久久99| 免费成人在线观看视频| www.久久精品| 欧美v国产在线一区二区三区| 亚洲男人电影天堂| 国产一区在线视频| 欧美人动与zoxxxx乱|