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

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

?? display.c

?? S3C2440+SM501在wince環境下的應用!
?? C
?? 第 1 頁 / 共 3 頁
字號:
#define __DISPLAY#include "display.h"#undef __DISPLAY//********************** Global Variable **********************ushort cLanguage = 0;	//語言選擇WORD SHOW_CHINESE;   int NotUseViewmem;		//當前未使用顯存SetDataInfoDef 	SetDataInfo[MAXITEMS];	//一頁最多只有27個設置項//*************************************************************//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 函數: 求平方根.// 描述: 求一個數的平方根.//// [參數表]//	x: 待求數.//// 返回: x的平方根(取整).//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~int Sqrt (DWORD x){	float x0=1.0;float x2=1.0; float x1	;	int reValue;		while((((x1-x2)>=0.0001)||((x1-x2)<=-0.0001)))	{		x1=(x0+x/x0)*0.5;		x2=x0;		x0=x1;	}	reValue = (int)x1;	return reValue;}//Sqrt()//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 函數: 繪像素.// 描述: 為指定像素點著色.//// [參數表]//	x, y: 像素點坐標.//	color: 顏色.//// 返回: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~void PutPixel (WORD x, WORD y,WORD color){	DWORD	addr;		addr = GetAddress(x,y);		// 顯存偏移地址	*(WORD *)addr = color;		// 像素著色}//PutPixel()//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 函數: 取指定像素點顏色.//// [參數表]//	x, y: 像素點坐標.//// 返回: 顏色值.//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~WORD GetPixelColor (WORD x, WORD y){	DWORD	addr;	WORD	value;		if(x >= SCREEN_WIDTH || y >= SCREEN_HEIGHT)		return 0;	addr = GetAddress(x,y);			//內存偏移地址	value  =  *(WORD *)addr;	return value;}//PutPixel()//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 函數: 反相色像素著色.// 描述: 用指定像素點當前顏色的反相色對該像素點進行著色.//// [參數表]//	x, y: 像素點坐標.//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~void ReversePutPixel (WORD x, WORD y){	WORD recolor;	recolor = GetPixelColor(x, y);	// 讀出當前像素點的顏色	recolor ^= 0xffff;	// 求反相色	PutPixel(x,y,recolor);	// 像素像素著色}//ReversePutPixel()//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 函數: 屏幕刷色.// 描述: 把整個屏幕設成同一種顏色, 可用于清屏.//// [參數表]//	wColor: 顏色.//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~void ClearScreen (WORD wColor){	int	i;	WORD *addr;		addr = (WORD *)CONFIG_SM501_MEM_BASE;	for(i=0;i<SCREEN_HEIGHT*SCREEN_WIDTH;i++)		*addr++ = wColor;}//ClearScreen()//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 函數: 邊界處理.// 描述: 檢查輸入坐標是否溢出邊界.//// [參數表]//	x1, y1: 像素點1坐標.//	x2, y2: 像素點2坐標.//// 返回: 0-溢出邊界; 1-無溢出.//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~BYTE BorderDeal (WORD *x1, WORD *y1, WORD *x2, WORD *y2){	if((*x1 > SCREEN_WIDTH) ||(*x2 > SCREEN_WIDTH) 	 ||(*y1 > SCREEN_HEIGHT)||(*y2 > SCREEN_HEIGHT))		return 0;	return 1; }//BorderDeal()//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 函數: 畫直線.// 描述: 在屏幕指定起始坐標之間畫一條直線.//// [參數表]//	x1, y1: 起始坐標.//	x2, y2: 末端坐標.//	color: 顏色.//	cType: 線型. 0-實線; 1-虛線; 2-反相色直線; 3-反相色虛線////	注: 當采用反相色畫線時, color無效.//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~void Line(WORD x1,WORD y1,WORD x2,WORD y2,WORD color,BYTE cType){	int		dx, dy, steps, k;	float	xInc, yInc, x, y;	short	flag=-1;	// 虛線控制標記		//---------- 邊界處理 ----------	if(BorderDeal((WORD *)&x1,(WORD *)&y1,(WORD *)&x2,(WORD *)&y2) == 0)		return;	//---------- 參數計算 ----------	dx = x2 - x1;	// 水平跨度	dy = y2 - y1;	// 垂直跨度	x = x1;		// 畫線橫坐標賦初值	y = y1;		// 畫線縱坐標賦初值		if( abs(dx)>abs(dy) )	// 選擇步進跨度		steps = abs(dx);	else			steps = abs(dy);			if (steps == 0)	// 若始末端坐標重合, 則不畫線.		return;			xInc = dx/(float)steps;	// 水平步進值	yInc = dy/(float)steps;	// 垂直步進值	//---------- 畫線 ----------	PutPixel(x1,y1,color);	// 繪起點	for( k=0; k<steps; k++ )	// 逐點繪線	{		x += xInc;	// 橫坐標步進		y += yInc;	// 縱坐標步進		switch(cType)	// 根據線型繪像素		{			case 0:	// 實線				PutPixel(x,y,color);				break;							case 1:	// 虛線				if (k%BROKEN_LEN == 0)					flag =- flag;				if (flag == 1)						PutPixel(x,y,color);				break;							case 2:	//反相色實線				ReversePutPixel(x,y);				break;							case 3:	//反相色虛線				if (k%BROKEN_LEN == 0)     					flag = -flag;				if (flag == 1)						ReversePutPixel(x,y);				break;							default:	break;		}//switch	}//for}//Line()//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 函數: 畫直線(快速).// 描述: 在屏幕指定起始坐標之間畫一條直線.//// [參數表]//	x1, y1: 起始坐標.//	x2, y2: 末端坐標.//	color: 顏色.//	cType: 線型. 0-實線; 1-虛線; 2-反相色直線; 3-反相色虛線//// 注: 與Line函數相比, DrawLine不進行邊界溢出判斷, 而且直接對顯存寫入, 所以速度快.//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~void DrawLine (WORD x1,WORD y1,WORD x2,WORD y2,WORD color){	DWORD	addr;	WORD i;		addr = GetAddress(x1,y1);			//顯存偏移地址	for(i = y1;i < y2;i++)	{		*(WORD *)addr= color;			addr += 2*SCREEN_WIDTH;	}				}//DrawLine()//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 函數: 取字符尺寸.// 描述: 取要顯示字符的寬度和高度.//// [參數表]//	cfontSize: 字號大小.//	cCharSize: 字符寬度. 用于返回.//	*VSize: 字符高度, 用于返回.//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~void GetCharSize (BYTE cfontSize,WORD *cCharSize,WORD *VSize){	switch(cfontSize)	{		case 0://8*16			*cCharSize = 8;			break;				case 1://16*16			*cCharSize = 10;			break;				case 2://16*24			*cCharSize = 12;			*VSize = 24;			break;					case 3://24*24			*cCharSize = 12;			*VSize = 24;			break;				case 4://24*32			*cCharSize = 14;			*VSize = 32;					case 5://32*32			*cCharSize = 16;			*VSize = 32;			break;				case 6://32*48			*cCharSize = 28;			*VSize = 48;			break;					case 7://32*64			*cCharSize = 32;			*VSize = 64;			break;					case 8://48*80			*cCharSize = 48;			*VSize = 80;			break;					default:			*cCharSize = 14;			break;	}//switch}//GetCharSize()//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 函數: 顯示8*16字符.// 描述: 從字庫提取點陣, 顯示一個8*16字符.//// [參數表]//	addr: 字符點陣地址.//	x, y: 顯示坐標.//	fcolor: 前景顏色.//	bcolor: 背景顏色.//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~void ShowChar816 (int addr,WORD x,WORD y,WORD fcolor,int bcolor){	BYTE i,m,value;		//RestoreArea(x,y,8,16);	for(i=0;i<16;i++)//一個英文字符16個字節	{		value = *(BYTE *)(addr+i);		for(m=0;m<8;m++)		{			if( value&0x80 )				PutPixel(x+m,y+i,fcolor);			else				if(bcolor != NO_BACK_COLOR)//有背景色					PutPixel(x+m,y+i,bcolor);			value <<= 1;		}	}	}//ShowChar816()//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 函數: 顯示英文字符.// 描述: 顯示一個英文字符.//// [參數表]//	ch: 需要顯示的字符.//	x, y: 字符顯示位置的屏幕坐標.//	fcolor: 前景顏色.//	bcolor: 背景顏色.//	cfont: 字號大小.//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~void ShowEnglishChar (char ch,WORD x,WORD y,WORD fcolor,int bcolor,BYTE cfont){	int		addr;	switch(cfont)	// 根據字號選擇字庫, 顯示字符	{		case 0:	//8*16			addr = (dwEnFontAddr+ch*16);	// 字符點陣地址			ShowChar816(addr,x,y,fcolor,bcolor);			break;				case 1:	//16*16			addr = (dwEnFont1616+ch*32);	//字符點陣地址			ShowChar1616(addr,x,y,fcolor,bcolor);			break;					case 2:	//16*24			addr = (dwEnFont1624+ch*48);	//字符點陣地址			ShowChar1624(addr,x,y,fcolor,bcolor);			break;				case 3:	//24*24			addr = (dwEnFont2424+ch*72);	//字符點陣地址			ShowChar2424(addr,x,y,fcolor,bcolor);			break;					case 4:	//24*32			addr = (dwEnFont2432+ch*96);	//字符點陣地址			ShowChar2432(addr,x,y,fcolor,bcolor);			break;					case 5:	//32*32			addr = (dwEnFont3232+ch*128);	//字符點陣地址			ShowChar3232(addr,x,y,fcolor,bcolor);			break;				case 6:	//32*48			//大數字點陣的特殊處理			if(ch == 32) ch = 58;			if(ch < 48)	 ch += 16;			addr = (dwEnFont3248+(ch-48)*192);//字符點陣地址			ShowChar3248(addr,x,y,fcolor,bcolor);			break;				case 7:	//32*64			//大數字點陣的特殊處理			if(ch == 32) ch = 58;			if(ch < 48)	 ch += 16;			addr = (dwEnFont3264+(ch-48)*256);//字符點陣地址			ShowChar3264(addr,x,y,fcolor,bcolor);			break;					case 8:	//48*80			//大數字點陣的特殊處理			if(ch == 32) ch = 58;			if(ch < 48)	 ch += 16;			addr = (dwEnFont4880+(ch-48)*480);//字符點陣地址			ShowChar4880(addr,x,y,fcolor,bcolor);			break;					default:	break;	}}// ShowEnglishChar//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 函數: 顯示24*24點陣漢字.// 描述: 用24*24點陣顯示一個漢字.//// [參數表]//	hz: 漢字的基址.//	x, y: 漢字顯示位置的屏幕坐標.//	color: 字體顏色.//	bcolor: 背景顏色.//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~void ShowChineseChar24(char *hz,int x,int y,int color,int bcolor){	int		i,j,hzaddr;	int 	pos;	BYTE	value;		//45120*288/32    //計算出漢字在字庫中的位置    //16*16(32個字節時 = 33088 + ((hz[0]  - 176) * 94 + (hz[1]  - 161)) * 32	pos =  72 * (33088 + ((hz[0]  - 176) * 94 + (hz[1]  - 161)) * 32) / 32;    // 顯示全角字符處理   	if( pos < 0 )   	  	pos = 9 * 12032/ 4 + pos;       	hzaddr = dwChFontAddr +  pos ;	// 漢字點陣地址	for(i=0;i<72;i++)	//一個24*24漢字72字節	{		value = *(BYTE *)(hzaddr+i);		for(j=0;j<8;j++)	// 取8-bit點陣		{            if( value & 0x80 )	/* 前景/背景判別 */            	PutPixel(x+(i%3)*8+j,y+(i/3),color);	// 前景像素            else            	if(bcolor != NO_BACK_COLOR)	// 背景像素(若有背景色)            		PutPixel(x+(i%3)*8+j,y+(i/3),bcolor);            value <<= 1;        }    }}//ShowChineseChar34()//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 函數: 根據漢字碼(hzASC)輸出一個漢字.// 描述: 根據給出的漢字碼, 在屏幕指定位置輸出一個漢字.//// [參數表]// hzASC: 漢字ASC碼, 2字節.// x, y: 漢字顯示位置的屏幕坐標.// color: 字體顏色.// bcolor: 背景顏色.//	// 返回: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~void ShowChineseFromASC(WORD hzASC,WORD x,WORD y,WORD color,int bcolor){	hzASC = ((hzASC & 0xFF) << 8) + (hzASC >> 8);	// 漢字asc碼高低字節互換	ShowChineseChar24((char *)&hzASC,x,y,color,bcolor);	// 顯示漢字}//ShowChineseFromASC()//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// 函數: 顯示16*16字符.// 描述: 從字庫提取點陣, 顯示一個16*16字符.//// [參數表]//	addr: 字符點陣地址.//	x, y: 顯示坐標.//	fcolor: 前景顏色.//	bcolor: 背景顏色.//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~void ShowChar1616(int addr,WORD x,WORD y,WORD color,int bcolor){	short i,j;	BYTE  value;	for( i=0; i<32; i++ )	// 16*16點陣共占32字節	{		value = *(BYTE *)(addr+i);	// 取8-bit點陣		for(j=0;j<8;j++)		{            if( value & 0x80 )	// 前景/背景判別            	PutPixel(x+(i%2)*8+j,y+(i/2),color);	// 前景像素

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产精品第一页| 国产精品日日摸夜夜摸av| 国产成人免费视频网站| 亚洲成av人片| 久久国产生活片100| 成人国产精品免费观看动漫| 欧美一区二区成人6969| 狠狠色丁香婷婷综合| 精品一区二区三区蜜桃| 波多野结衣亚洲| 激情小说欧美图片| 精品少妇一区二区三区视频免付费| 精品免费日韩av| 中日韩免费视频中文字幕| 亚洲二区视频在线| 亚洲精品国产精品乱码不99 | 久久久久久久久久久黄色| 国产成人综合在线播放| 成人福利在线看| 国产精品原创巨作av| 久久新电视剧免费观看| 国产九九视频一区二区三区| 51精品视频一区二区三区| 日韩一区二区在线观看视频 | 国产精品系列在线播放| 亚洲高清视频在线| 久久久久久久性| 中文字幕一区二区三中文字幕| 久久综合九色综合欧美98| 最新国产の精品合集bt伙计| 国产欧美精品国产国产专区 | 成人97人人超碰人人99| 粉嫩aⅴ一区二区三区四区| 韩国精品主播一区二区在线观看 | 亚洲精品中文在线| 久久福利视频一区二区| 精品国产髙清在线看国产毛片| 欧美一区二区视频免费观看| 国产福利91精品| 欧洲精品一区二区| 欧美一级欧美一级在线播放| 蜜桃久久久久久| 国产欧美日韩综合| 欧美一级在线免费| 久久综合九色综合97婷婷| 国产人久久人人人人爽| 椎名由奈av一区二区三区| 婷婷国产v国产偷v亚洲高清| 国产一区二区视频在线| 9l国产精品久久久久麻豆| 日韩毛片一二三区| 欧美一区二区日韩| 欧美伊人久久大香线蕉综合69 | 99久久er热在这里只有精品15| 老司机精品视频一区二区三区| 成人欧美一区二区三区1314| 色综合久久久久网| 亚洲男人的天堂av| xfplay精品久久| 日韩国产精品久久久久久亚洲| 青青草91视频| 亚洲自拍偷拍麻豆| 成人免费在线视频| 在线视频一区二区免费| 国产不卡视频一区二区三区| 欧美三级在线播放| 亚洲一区二区三区在线播放| 欧美日韩一区在线观看| 色综合久久久久综合体桃花网| 亚洲精品成人在线| 久久激五月天综合精品| 精品视频一区 二区 三区| 国产欧美在线观看一区| 久久国产夜色精品鲁鲁99| 高清shemale亚洲人妖| 亚洲曰韩产成在线| 成人午夜在线视频| 国产精品久久久久影院老司| 国产精品人妖ts系列视频| 美女视频黄久久| 在线中文字幕一区| 一二三区精品福利视频| 91免费看`日韩一区二区| 国产欧美精品在线观看| 成人爽a毛片一区二区免费| 久久色在线视频| 久久精工是国产品牌吗| 911精品产国品一二三产区| 偷拍一区二区三区四区| 欧美三级电影在线观看| 亚洲一二三区视频在线观看| 五月开心婷婷久久| 狠狠色狠狠色综合| 国产欧美日韩视频在线观看| 国v精品久久久网| 精品免费一区二区三区| 精品国产伦一区二区三区免费| 免费一级欧美片在线观看| 欧美性猛片aaaaaaa做受| 欧美一级理论性理论a| 久久午夜老司机| 国产区在线观看成人精品 | 日韩精品视频网站| 日韩中文字幕麻豆| 经典一区二区三区| 欧美一级在线视频| 欧美日韩国产一二三| 26uuu亚洲综合色| 亚洲6080在线| 国产盗摄精品一区二区三区在线 | 337p粉嫩大胆噜噜噜噜噜91av| 色婷婷综合久久| 粉嫩aⅴ一区二区三区四区| 天天综合色天天综合色h| 国产日产欧美一区| 成人欧美一区二区三区| 中文字幕一区二区在线播放| 日av在线不卡| 国产亚洲精品超碰| 久久精品国产色蜜蜜麻豆| 91网站视频在线观看| 日本一区二区三区久久久久久久久不 | 高清beeg欧美| 国产精品69毛片高清亚洲| 国内精品伊人久久久久av影院 | 欧美久久久影院| 精品一区二区三区在线播放视频| 中文字幕精品在线不卡| 91精品国产综合久久久久久漫画| 99精品久久久久久| 欧美精品久久99久久在免费线 | 91亚洲大成网污www| 喷水一区二区三区| 亚洲黄色av一区| 久久伊99综合婷婷久久伊| 欧洲av一区二区嗯嗯嗯啊| av动漫一区二区| 成人性生交大片免费看在线播放| 免费观看在线综合色| 亚洲成人先锋电影| 国产日本欧洲亚洲| 精品对白一区国产伦| 欧美大黄免费观看| 欧美美女视频在线观看| 国产亚洲欧美日韩俺去了| 91国内精品野花午夜精品| 免费高清成人在线| 美女在线一区二区| 天天爽夜夜爽夜夜爽精品视频| 国产91在线观看| 国产精品国产三级国产普通话蜜臀 | 久久新电视剧免费观看| 国产成a人无v码亚洲福利| 国产一区欧美一区| 欧美日韩国产另类一区| 亚洲欧美日韩小说| 在线观看日产精品| 国产激情精品久久久第一区二区| 国产精品国产三级国产a| 亚洲国产精品传媒在线观看| 国产精品国产精品国产专区不片| 欧美成人在线直播| 国产成人精品免费在线| 伦理电影国产精品| 日韩一级视频免费观看在线| 成人一区二区三区视频在线观看| 尤物在线观看一区| 欧美视频一区二区三区在线观看| 美脚の诱脚舐め脚责91 | av不卡在线观看| 懂色av一区二区三区蜜臀| 麻豆国产精品官网| 国产曰批免费观看久久久| 日本精品免费观看高清观看| 国产精品一区二区在线观看网站| 欧美性极品少妇| 欧美成人一级视频| 亚洲天堂精品在线观看| 国产精品卡一卡二| 一区二区免费在线| 九九视频精品免费| 国产成人高清视频| 色综合久久精品| 制服丝袜成人动漫| 欧美国产精品中文字幕| 一区二区三区中文字幕| 日韩电影一二三区| 成人在线视频首页| 99精品桃花视频在线观看| 欧美日韩精品二区第二页| 久久精品人人做人人爽97| 亚洲一区二区三区视频在线| 精品一区二区在线播放| 色婷婷精品大视频在线蜜桃视频| 91精品国产综合久久香蕉麻豆| 国产精品情趣视频| 久久99国产精品久久99| 在线日韩av片| 欧美国产一区视频在线观看| 蜜臀99久久精品久久久久久软件|