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

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

?? graphic_loader.c.svn-base

?? sigmadesign smp8623 gui source code ,bingo
?? SVN-BASE
?? 第 1 頁 / 共 4 頁
字號:
	//find last item	while(nlru->entries.le_next)	{		nlru = nlru->entries.le_next;	}//	do//	{//		if(nlru->item->size < size)//		{//			nlru = nlru->entries.le_prev;//			printf("next\n");//			printf("item size: %lu", nlru->item->size);//			if(nlru->item == cache.lh_first)//			{//					return RM_ERROR;//			}//			else{//				entry* prev = (nlru->item->entries.le_prev);////				for(i = 0; i < MAX_BITMAPS; i ++)//				{//					if(g_bitmaps[i].pBmpAddr == prev->begin)//					{//						RMMemset(&g_bitmaps[i], 0, sizeof(RMbitmapdata));//						*newindex = i;//						break;//					}//				}////				prev->end = nlru->item->end;//				prev->size += nlru->item->size;//				prev->entries.le_next = nlru->item->entries.le_next;//				LIST_REMOVE(&cache, nlru->item, entries);//				RFREE(nlru->item);//				printf("item size: %lu", prev->size);//				nlru->item = prev;//			}//		} else {//			printf("clear\n");////		}//	} while (nlru->item->size < size);//again:	while((nlru->entries.le_prev && nlru->item->size < size) || (nlru->item->locked))	{		if(nlru == lru.lh_first && nlru->item->size < size)			return RM_ERROR;		nlru = nlru->entries.le_prev;	}//	RMASSERT( nlru != lru.lh_first);//	{//		RMuint32 innersize = ((size / TILESIZE) + 1) * TILESIZE;//		if(innersize < nlru->item->size)//		{//			printf("size: %lu, innersize %lu\n", nlru->item->size, innersize);//			if(nlru->item->entries.le_next && nlru->item->entries.le_next->freeBlock) {//				nlru->item->size = innersize;//				nlru->item->end = nlru->item->begin + innersize;//				nlru->item->entries.le_next->begin = nlru->item->end;//				nlru->item->entries.le_next->size = nlru->item->entries.le_next->end - nlru->item->entries.le_next->begin;////			} else {//				entry* np = (entry*) MALLOC(sizeof(entry));////				nlru->item->size = innersize;//				np->end = nlru->item->end;//				nlru->item->end = nlru->item->begin + innersize;//				np->begin = nlru->item->end;//				np->freeBlock = TRUE;//				np->locked = FALSE;//				np->size = np->end - np->begin;////				LIST_INSERT_AFTER(nlru->item, np, entries);////			}//		}//	}	for(i = 0; i < MAX_BITMAPS; i ++)	{		if(g_bitmaps[i].pBmpAddr == nlru->item->begin)		{			printf("%s\n", g_bitmaps[i].path);			RMMemset(&g_bitmaps[i], 0, sizeof(RMbitmapdata));			nlru->item->freeBlock = TRUE;			*newindex = i;			break;		}	}//	if(i > MAX_BITMAP)	printf("new index is: %d size %lu\n", *newindex, nlru->item->size);	LIST_REMOVE(&lru, nlru, entries);	RFREE(nlru);//	LIST_INSERT_HEAD(&lru, nlru, entries);	return RM_OK;}RMstatus ResetUsedBuffer(RMuint32 offset){//	if(g_BaseBuffer.offset > offset){///		g_BaseBuffer.offset -= offset;//		return RM_OK;//	}	entryLRU* lp;	entry* np;	for(np = cache.lh_first; np != NULL; np = np->entries.le_next)	{		if(np->begin != g_bitmaps[0].pBmpAddr && np->locked == FALSE) {			np->freeBlock = TRUE;			if(np->entries.le_prev && np->entries.le_prev->freeBlock) {				entry* t = np;				np->entries.le_prev->end = np->end;				np->entries.le_prev->size += np->size;				np->entries.le_prev->locked = FALSE;				np = np->entries.le_prev;				LIST_REMOVE(&cache, t, entries);				RFREE(t);			}		}	}	lp = lru.lh_first;	while(lp->entries.le_next) {		entryLRU* t = lp;		lp = lp->entries.le_next;		if(t->item->begin != g_bitmaps[0].pBmpAddr)		{			LIST_REMOVE(&lru, t, entries);			RFREE(t);		}	}	PrintCacheStatys("Reset Used Buffer");	return RM_ERROR;}RMbool CanReuseBuffer(	RMuint32 used,	RMuint32 needed){	RMuint32 limit;	if(g_BaseBuffer.baseAddr){		limit = g_BaseBuffer.baseAddr + g_BaseBuffer.offset - used + needed;		return (limit <= g_BaseBuffer.limit);	}	return FALSE;}RMstatus convertCodepage(RMascii *text){	RMascii tempString[MAX_STR_LENGTH];	RMuint8 position = 0;	RMuint8 skipBytes = 0;	RMuint8 i;	for(i=0; i < strlen(text); i++){		if(skipBytes != 0){			skipBytes--;		}		else{			if((RMuint8)text[i] > 0x80){				if((text[i] & 0xe0) == 0xc0){					tempString[position] = (((text[i] - 0xc0)<<6) + (text[i+1] - 0x80));					skipBytes = 1;				}//3 byte Chars are not yet supported (only 2 byte special chars. (1 byte chars are passed thru)			}			else{				tempString[position] = text[i];			}			position++;		}	}	tempString[position] = '\0';	//fprintf(stderr, "Original string: %s, length: %ld\n", text, strlen(text));	//fprintf(stderr, "Converted string: %s, length: %ld\n", tempString, strlen(tempString));	RMCopyAscii(text, tempString);	return RM_OK;}RMbool isPredefinedFont(RMascii *path){	RMuint8 i;	for(i = 0; i < PREDEFINED_FONTS; i++){		if(!strcmp(PredefinedFonts[i]->name, path))			return TRUE;	}	return FALSE;}RMstatus getPredefinedFontIndex(	RMascii *path,	RMuint8 *index){	RMuint8 i;	// get index	for(i = 0; i < PREDEFINED_FONTS; i++){		if(!strcmp(PredefinedFonts[i]->name, path)){			*index = i;			return RM_OK;		}	}	return RM_ERROR;}RMstatus setPredefinedFont(	struct RUA* pRua,	RMbitmapdata *pBmpData,	RMuint32 *size){	RMuint8 i;	RMuint32 datasize;	RMuint8 fontindex = 0xff;	RMdrawBuffer bmpbuffer;	RMstatus status;	// get index	for(i = 0; i < PREDEFINED_FONTS; i++){		if(!strcmp(PredefinedFonts[i]->name, pBmpData->path)){			fontindex = i;			break;		}	}	if(fontindex == 0xff)		return RM_ERROR;	// allocate buffer of 4 * 128 chars (width = 128 * 4bytes)	pBmpData->bmp.uiHeight = PredefinedFonts[fontindex]->height;	pBmpData->bmp.uiNbBitPerPixel = 1;	pBmpData->bmp.uiWidthLenInBytes = 4 * MAX_STR_LENGTH * MAX_STR_BUFFERS;	pBmpData->bmp.uiWidth = 4 * MAX_STR_LENGTH * MAX_STR_BUFFERS;	datasize = pBmpData->bmp.uiHeight * pBmpData->bmp.uiWidth;	*size = datasize;	status = AllocateBuffer(&bmpbuffer, datasize, FALSE);	if(RMFAILED(status)){		fprintf(stderr, "GFXLIB: Failed to allocate %ld for predefined font buffer!\n", datasize);		return RM_FATALOUTOFMEMORY;	}	pBmpData->pBmpAddr = bmpbuffer.baseAddr;	pBmpData->bmp.pData = bmpbuffer.pMappedAddr;	pBmpData->bmp.uiDataSize = datasize;	pBmpData->bmp.uiBufferSize = datasize / MAX_STR_BUFFERS;	return RM_OK;}RMuint32 getTextWidth(	RMascii* text,	RMuint8 index){	RMuint32 width = 0;	RMuint16 i;	RMuint16 length = 0;	RMuint16 charindex = 0;	union	{		RMuint16 l;		RMint8 b[2];	} big;	length = RMasciiLength(text);	for(i = 0; i < length; i++){		RMbool double_inc = FALSE;		if ((text[i] & 0x80) == 0)		{			big.l = text[i];		}		else if (text[i] & 0xC0)		{			RMuint8 _t;			_t = text[i];			_t <<= 6;			_t &= 0xC0;			//			printf("draw string: %X %X\n", prop->text[i], prop->text[i+1]);			big.b[0] = (text[i + 1] & 0x3F) | _t;			big.b[1] = (text[i] & 0x1f) >> 2;			//i++;			double_inc = TRUE;			//			RMDBGLOG((GFXDBG, "TwoBytes \'%X\'\n", big.l));		}		charindex = /*text[i]*/big.l - PredefinedFonts[index]->firstchar;		width += PredefinedFonts[index]->width[charindex];		if(double_inc)			i++;	}	return width;}RMuint32 getModifiedTextWidth(	RMascii *text,	RMuint16 maxWidth,	RMascii *modifiedText,	RMuint8 index,	RMbool dots){	RMuint32 width = 0;	RMuint16 i;	RMuint8 length = strlen(text);	RMuint8 charindex;	RMuint32 charwidth;	RMuint32 endwidth = 0;	union	{		RMuint16 l;		RMint8 b[2];	} big;	// get '...' width	if(dots)	{		charindex = '.' - PredefinedFonts[index]->firstchar;		endwidth = 3 * PredefinedFonts[index]->width[charindex];		maxWidth -= endwidth;	}	for(i = 0; i < length; i++){		RMbool double_inc = FALSE;		if ((text[i] & 0x80) == 0)		{			big.l = text[i];		}		else if (text[i] & 0xC0)		{			RMuint8 _t;			_t = text[i];			_t <<= 6;			_t &= 0xC0;			//			printf("draw string: %X %X\n", prop->text[i], prop->text[i+1]);			big.b[0] = (text[i + 1] & 0x3F) | _t;			big.b[1] = (text[i] & 0x1f) >> 2;			//i++;			double_inc = TRUE;			//			RMDBGLOG((GFXDBG, "TwoBytes \'%X\'\n", big.l));		}		charindex = /*text[i]*/big.l - PredefinedFonts[index]->firstchar;		charwidth = PredefinedFonts[index]->width[charindex];		if(width + charwidth <= maxWidth){			width += charwidth;			modifiedText[i] = text[i];			if(double_inc)				modifiedText[i+1] = text[i+1];		}		else if (dots)		{			RMAppendAscii(modifiedText, "...");			width += endwidth;			break;		}		else		{			RMAppendAscii(modifiedText, "");			break;		}		if(double_inc)			i++;	}	return width;}RMuint8 getTextLines(	const RMascii *text,	RMuint8 fontindex,	RMuint16 maxwidth,	RMuint16 maxchars,	RMuint8 maxlines,	RMtextitem *lines){	RMuint32 width = 0;	RMuint16 i, j, k;	RMuint8 index;	RMuint8 length = strlen(text);	RMuint8 charindex;	RMuint16 position = 0;	RMuint16 from = 0;	for(index = 0; index < maxlines; index++){		RMMemset(lines[index], 0, sizeof(lines[index]));		width = 0;		position = from;		for(i = from, j = 0; i < length; i++, j++){			charindex = text[i] - PredefinedFonts[fontindex]->firstchar;			width += PredefinedFonts[fontindex]->width[charindex];			if(width < maxwidth){				if(strlen(lines[index]) >= maxchars){					for(k = position; k > 0; k--){						lines[index][k - from] = 0;						if(text[k] == ' '){							from = k + 1;							break;						}					}					break;				}				lines[index][j] = text[i];				position++;			}			else{				for(k = position; k > 0; k--){					lines[index][k - from] = 0;					if(text[k] == ' '){						from = k + 1;						break;					}				}				break;			}		}		if(position == length)			break;	}	return (index + 1);}RMuint8 getFontFirstChar(RMuint8 index){	return PredefinedFonts[index]->firstchar;}RMuint8 getCharWidth(	RMuint8 index,	RMuint16 charindex){	return PredefinedFonts[index]->width[charindex];}RMuint8 getFontHeight(RMuint8 index){	return PredefinedFonts[index]->height;}RMstatus getCharData(	struct RUA *pRua,	RMbitmapdata *pBmpData,	RMuint8 fontindex,	RMuint16 charindex,	RMuint16 *width,	RMuint8 scanindex,	RMuint16 slen,	RMuint8 bufferindex){	RMuint16 bit;	RMuint16 index = 0;	RMuint8 columns;	RMuint16 row;	RMuint16 bitvalue;	columns = PredefinedFonts[fontindex]->width[charindex] > 16 ? 2 : 1;	index = 0;	for(row = 0; row < PredefinedFonts[fontindex]->height; row++){		index = row * (4 * slen) + scanindex * 4;		bit = PredefinedFonts[fontindex]->offset[charindex] + row * columns;#if((EM86XX_CHIP==EM86XX_CHIPID_MAMBOLIGHT) || (EM86XX_CHIP==EM86XX_CHIPID_MAMBO))		bitvalue = ~rev16(PredefinedFonts[fontindex]->bits[bit]);	//~ : bits are inverted		(pBmpData->bmp.pData + bufferindex * pBmpData->bmp.uiBufferSize)[index++] = LOBYTE(bitvalue);		(pBmpData->bmp.pData + bufferindex * pBmpData->bmp.uiBufferSize)[index++] = HIBYTE(bitvalue);#else		bitvalue = ~(PredefinedFonts[fontindex]->bits[bit]);	//~ : bits are inverted		(pBmpData->bmp.pData + bufferindex * pBmpData->bmp.uiBufferSize)[index++] = HIBYTE(bitvalue);		(pBmpData->bmp.pData + bufferindex * pBmpData->bmp.uiBufferSize)[index++] = LOBYTE(bitvalue);#endif		if(columns > 1){#if((EM86XX_CHIP==EM86XX_CHIPID_MAMBOLIGHT) || (EM86XX_CHIP==EM86XX_CHIPID_MAMBO))			bitvalue = ~rev16(PredefinedFonts[fontindex]->bits[bit + 1]);//~ : bits are inverted			(pBmpData->bmp.pData + bufferindex * pBmpData->bmp.uiBufferSize)[index++] = LOBYTE(bitvalue);			(pBmpData->bmp.pData + bufferindex * pBmpData->bmp.uiBufferSize)[index++] = HIBYTE(bitvalue);#else			bitvalue = ~(PredefinedFonts[fontindex]->bits[bit + 1]);//~ : bits are inverted			(pBmpData->bmp.pData + bufferindex * pBmpData->bmp.uiBufferSize)[index++] = HIBYTE(bitvalue);			(pBmpData->bmp.pData + bufferindex * pBmpData->bmp.uiBufferSize)[index++] = LOBYTE(bitvalue);#endif		}	}	*width = PredefinedFonts[fontindex]->width[charindex];	return RM_OK;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av在线一区二区| 狠狠色狠狠色综合系列| 日本高清无吗v一区| 中文字幕一区二区三区四区| 91在线精品一区二区| 亚洲激情一二三区| 777久久久精品| 久久精品二区亚洲w码| 欧美激情在线一区二区三区| www.日本不卡| 亚洲尤物视频在线| 欧美电视剧在线看免费| 国产麻豆日韩欧美久久| 一色桃子久久精品亚洲| 欧美视频精品在线观看| 久久精品国产999大香线蕉| 欧美国产激情一区二区三区蜜月| 91免费视频观看| 奇米在线7777在线精品| 中文无字幕一区二区三区| 91福利小视频| 久久国产精品99精品国产| 国产精品色哟哟网站| 在线精品视频小说1| 久88久久88久久久| 亚洲欧美一区二区在线观看| 欧美精品三级在线观看| 国产91丝袜在线播放九色| 亚洲伦在线观看| 精品福利在线导航| 一本大道av一区二区在线播放| 日本午夜一本久久久综合| 国产精品日产欧美久久久久| 欧美高清激情brazzers| 国产不卡高清在线观看视频| 午夜成人在线视频| 亚洲一卡二卡三卡四卡无卡久久| 久久先锋资源网| 欧美色成人综合| 成人免费毛片嘿嘿连载视频| 秋霞电影网一区二区| 亚洲欧洲制服丝袜| 精品国产一区二区三区av性色 | 久久99国产精品成人| 中文字幕一区二区三区四区| 精品国产免费一区二区三区香蕉 | 91成人网在线| 国产91在线观看丝袜| 美女视频黄免费的久久| 一二三区精品视频| 成人免费在线观看入口| 精品国产1区2区3区| 欧美高清性hdvideosex| 欧美中文字幕久久| 91在线观看污| 国产ts人妖一区二区| 久久电影网站中文字幕 | 日韩av一级片| 亚洲va欧美va人人爽| 亚洲免费观看高清完整版在线 | 欧美sm极限捆绑bd| 欧美日韩一区二区在线视频| 99在线精品一区二区三区| 国产成人av福利| 激情六月婷婷久久| 久草在线在线精品观看| 久久精品久久久精品美女| 偷窥少妇高潮呻吟av久久免费| 亚洲影院久久精品| 亚洲国产色一区| 亚洲国产一区二区三区青草影视 | 亚洲成人高清在线| 亚洲国产精品久久人人爱蜜臀| 亚洲欧洲精品一区二区三区不卡| 欧美极品aⅴ影院| 欧美激情一区三区| 欧美国产乱子伦| 国产精品久久久久久久久果冻传媒 | 91精品中文字幕一区二区三区| 欧美亚一区二区| 欧美人成免费网站| 欧美一级淫片007| 欧美一二三区精品| 精品日韩在线观看| 久久精品亚洲精品国产欧美kt∨| 久久久久久久久99精品| 久久久国产精品午夜一区ai换脸| 国产欧美综合在线观看第十页| 亚洲国产精品激情在线观看| 亚洲欧洲美洲综合色网| 亚洲愉拍自拍另类高清精品| 午夜欧美大尺度福利影院在线看| 日本不卡一二三| 国产精品一区二区久久精品爱涩| 国产精品一二三四区| jizz一区二区| 欧美色区777第一页| 91精品蜜臀在线一区尤物| 精品欧美乱码久久久久久1区2区| 久久精品一级爱片| 亚洲免费av高清| 免费成人性网站| 成人午夜视频免费看| 欧美午夜不卡视频| 日韩精品中文字幕在线一区| 欧美激情资源网| 亚洲成人你懂的| 国产一区二区在线免费观看| 97精品久久久午夜一区二区三区| 欧美日本一道本在线视频| 精品国产一区二区三区忘忧草 | 精品噜噜噜噜久久久久久久久试看| 久久久天堂av| 一区二区三区在线免费视频 | 亚洲午夜精品网| 国产呦萝稀缺另类资源| 91麻豆国产福利精品| 51精品国自产在线| 国产精品成人在线观看| 麻豆中文一区二区| 91污在线观看| 欧美成人精品高清在线播放| 亚洲免费观看高清完整版在线 | 免费成人在线播放| 99r国产精品| 欧美α欧美αv大片| 一区二区三区在线高清| 国产精品99久久久久久有的能看| 欧美色涩在线第一页| 国产精品无人区| 久久精品久久久精品美女| 日本大香伊一区二区三区| 国产亚洲欧美日韩在线一区| 无码av中文一区二区三区桃花岛| 成人黄色大片在线观看| 欧美一级片免费看| 亚洲一二三四区| 97超碰欧美中文字幕| 久久久午夜精品理论片中文字幕| 亚洲成av人片| 日本韩国视频一区二区| 亚洲欧洲国产日本综合| 国产91丝袜在线播放九色| 日韩欧美一级二级三级| 亚洲成年人影院| 在线观看91视频| 亚洲欧洲精品一区二区三区不卡 | 95精品视频在线| 久久久99精品久久| 国内成+人亚洲+欧美+综合在线| 欧美日韩亚洲高清一区二区| 亚洲人吸女人奶水| av一二三不卡影片| 中文字幕第一页久久| 国产一区二区调教| 精品国产成人系列| 狠狠色丁香久久婷婷综合_中| 欧美日本乱大交xxxxx| 亚洲一区免费在线观看| 在线一区二区三区四区五区 | 欧美日韩久久一区二区| 亚洲综合色视频| 欧美亚洲综合另类| 亚洲午夜精品网| 欧美久久久久久久久| 天天影视涩香欲综合网| 8v天堂国产在线一区二区| 日韩激情av在线| 日韩一区二区三区在线视频| 日韩福利视频网| 精品国产露脸精彩对白| 国产精品综合在线视频| 国产精品妹子av| 91网站在线播放| 亚洲在线成人精品| 91精品久久久久久久久99蜜臂| 日本在线播放一区二区三区| 日韩一区二区三区四区 | 成人欧美一区二区三区| 色综合久久99| 亚洲成人你懂的| 日韩精品一区在线观看| 国产在线精品国自产拍免费| 欧美国产乱子伦| 日本道色综合久久| 丝袜美腿高跟呻吟高潮一区| 欧美xfplay| 99久久精品国产麻豆演员表| 亚洲综合丁香婷婷六月香| 91精品久久久久久蜜臀| 国产一区二区h| 亚洲视频一区二区在线观看| 欧美在线一区二区| 久久成人免费电影| 中文字幕在线不卡| 在线综合视频播放| 懂色av一区二区夜夜嗨| 亚洲在线一区二区三区| 久久综合狠狠综合久久激情| 91偷拍与自偷拍精品|