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

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

?? rlebitmap.cpp

?? 游戲c++開發簡例
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
		mov esi, [ecx];
		mov edi, [eax]Bitmap.line;
		mov ecx, src;
		mov edx, x;
		mov edi, [edi+4*ebx];
		shl edx, 1;
		mov ecx, [ecx]src.width;
		add edi, edx;
		cmp w, ecx;
		jl clip;

		mov ebx, h;
		mov edx, edi;
noclip_blit:
		lodsw;
		test ax, ax;
		jz next_line;
		movzx ecx, al;
		cmp ax, RLE_TRANS;
		jge noclip_trans;
		//非透明
		shr ecx, 1;
		jnc noclip_even;
		movsw;
noclip_even:
		shr ecx, 1;
		jnc noclip_quard;
		movsd;
noclip_quard:
		test ecx, ecx;
		jz noclip_blit;
		movq mm0, [esi];
		dec ecx;
		add esi, 8;
		movq [edi], mm0;
		add edi, 8;
		jmp noclip_quard;

noclip_trans:
		lea edi, [edi+2*ecx];
		jmp noclip_blit;

next_line:
		add edx, pitch;
		dec ebx;
		mov edi, edx;
		jnz noclip_blit;
		jmp blit_end;
//需要剪裁
clip:
		mov edx, sx;	//edx剪裁后的左邊界
		mov eax, w;	
		mov dptr, edi;
		add sx, eax;	//sx剪裁后的右邊界
		xor ebx, ebx;	//ebx源圖當前像素位置
clip_blit:
		lodsw;
		test ax, ax;
		jz line_end;
		cmp ebx, sx;	//sx是右邊界
		jge line_end;
		movzx ecx, al;
		cmp ax, RLE_TRANS;
		jl clip_pixels;

		cmp ebx, edx;	//透明或輪廓
		jge l1;
		add ebx, ecx;
		mov eax, ebx;
		sub eax, edx;
		js clip_blit;
		lea edi, [edi+2*eax];
		jmp clip_blit;
l1:
		add ebx, ecx;
		lea edi, [edi+2*ecx];
		jmp clip_blit;

clip_pixels:
		mov eax, edx;
		cmp ebx, edx;
		jge l2;			//超過左邊界
		sub eax, ebx;
		cmp eax, ecx;
		jle l3;
		mov eax, ecx;
l3:
		lea esi, [esi+2*eax];
		add ebx, eax;
		sub ecx, eax;
		jz clip_blit;	//仍未超過左邊界

l2:
		mov eax, sx;	//sx是右邊界
		sub eax, ebx;
		cmp eax, ecx;
		jle l4;
		mov eax, ecx;
l4:
		add ebx, ecx;
		shr eax, 1;		//copy pixels
		jnc clip_even;
		movsw;
clip_even:
		shr eax, 1;
		jnc clip_quard;
		movsd;
clip_quard:
		test eax, eax;
		jz clip_blit;
		movq mm0, [esi];
		dec eax;
		add esi, 8; 
		movq [edi], mm0;
		add edi, 8;
		jmp clip_quard;

line_end:
		mov ebx, sline;
		mov eax, dptr;
		add ebx, 4;
		add eax, pitch;
		mov esi, [ebx];
		mov dptr, eax;
		mov sline, ebx;
		mov edi, eax;
		xor ebx, ebx;
		dec h;
		jnz clip_blit;
blit_end:
		emms;
	}
}

//with outline
void RleBitmapBlitOl( Bitmap* dest, int x, int y, RleBitmap* src )
{
	RLE_CLIP;

	int pitch, dptr;
	char** sline = &(src->line[sy]);
	pitch = dest->pitch;

	__asm{
		mov ebx, y;
		cld;
		mov ecx, sline;
		mov eax, dest;
		mov esi, [ecx];
		mov edi, [eax]Bitmap.line;
		mov ecx, src;
		mov eax, RLE_OUTLINECOLOR;
		mov edx, x;
		movd mm0, eax;
		mov edi, [edi+4*ebx];
		movq mm1, mm0;
		shl edx, 1;
		psllq mm0, 32;
		mov ecx, [ecx]src.width;
		por mm0, mm1;
		add edi, edx;
		cmp w, ecx;
		jl clip;
		cmp x, 1;
		jl clip;

		mov ebx, h;
		mov edx, edi;
noclip_blit:
		lodsw;
		test ax, ax;
		jz next_line;
		movzx ecx, al;
		and ax, 0xff00;
		cmp ax, RLE_TRANS;
		jg noclip_outline;
		je noclip_trans;
		//非透明
		cmp word ptr [esi], RLE_SHADOWCOLOR;
		je noclip_no_lOl;
		mov word ptr [edi-2], RLE_OUTLINECOLOR;	//左輪廓點
noclip_no_lOl:
		shr ecx, 1;
		jnc noclip_even;
		movsw;
noclip_even:
		shr ecx, 1;
		jnc noclip_quard;
		movsd;
noclip_quard:
		test ecx, ecx;
		jz noclip_rOl;
		movq mm1, [esi];
		dec ecx;
		add esi, 8;
		movq [edi], mm1;
		add edi, 8;
		jmp noclip_quard;
noclip_rOl:	//右輪廓點
		cmp word ptr [edi-2], RLE_SHADOWCOLOR;
		je noclip_blit;
		mov word ptr [edi], RLE_OUTLINECOLOR;
		jmp noclip_blit;	
		//透明
noclip_trans:
		lea edi, [edi+2*ecx];
		jmp noclip_blit;
		//畫輪廓
noclip_outline:
		mov eax, RLE_OUTLINECOLOR;
		shr ecx, 1;
		jnc noclip_oleven;
		stosw;
noclip_oleven:
		shr ecx, 1;
		jnc noclip_olquard;
		stosd;
noclip_olquard:
		test ecx, ecx;
		jz noclip_blit;
		movq [edi], mm0;
		dec ecx;
		add edi, 8;
		jmp noclip_olquard;

next_line:
		add edx, pitch;
		dec ebx;
		mov edi, edx;
		jnz noclip_blit;
		jmp blit_end;
//需要剪裁
clip:
		mov edx, sx;	//edx剪裁后的左邊界
		mov eax, w;	
		mov dptr, edi;
		add sx, eax;	//sx剪裁后的右邊界
		xor ebx, ebx;	//ebx源圖當前像素位置
clip_blit:
		lodsw;
		test ax, ax;
		jz line_end;
		cmp ebx, sx;	//sx是右邊界
		jge line_end;
		movzx ecx, al;
		//and ax, 0xff00;
		cmp ah, RLE_TRANS >> 8;
		jl clip_pixels;
		jg clip_outline;

		cmp ebx, edx;	//透明
		jge l1;
		add ebx, ecx;
		mov eax, ebx;
		sub eax, edx;
		js clip_blit;
		lea edi, [edi+2*eax];
		jmp clip_blit;
l1:
		add ebx, ecx;
		lea edi, [edi+2*ecx];
		jmp clip_blit;

clip_outline:	//輪廓
		mov eax, ebx;
		cmp ebx, edx;
		jge ol1;
		mov w, ebx;		//暫存
		add eax, ecx;
		sub eax, edx;
		jns ol0;
		add ebx, ecx;
		jmp clip_blit;
ol0:
		mov ecx, eax;
		mov ebx, edx;
ol1:
		mov eax, sx;
		sub eax, ebx;
		cmp eax, ecx;
		jge ol2;
		mov ecx, eax;
ol2:
		add ebx, ecx;
		mov eax, RLE_OUTLINECOLOR;
		shr ecx, 1;
		jnc ol3;
		stosw;
ol3:
		repnz stosd;
		jmp clip_blit;

clip_pixels:
		mov eax, edx;
		cmp ebx, edx;
		jle l2;			//未超過左邊界
		cmp [esi], RLE_SHADOWCOLOR;
		je l4;
		mov word ptr [edi-2], RLE_OUTLINECOLOR;
		jmp l4;
l2:
		sub eax, ebx;	//未超過左邊界
		cmp eax, ecx;
		jle l3;
		mov eax, ecx;
l3:
		lea esi, [esi+2*eax];
		add ebx, eax;
		sub ecx, eax;
		jz clip_blit;	//仍未超過左邊界
l4:
		mov eax, sx;	//sx是右邊界
		sub eax, ebx;
		cmp eax, ecx;
		jle l5;
		mov eax, ecx;
		cmp word ptr [esi+2*ecx-2], RLE_SHADOWCOLOR;
		je l5;
		mov word ptr [edi+2*ecx], RLE_OUTLINECOLOR;
l5:
		add ebx, ecx;
		shr eax, 1;		//copy pixels
		jnc clip_even;
		movsw;
clip_even:
		shr eax, 1;
		jnc clip_quard;
		movsd;
clip_quard:
		test eax, eax;
		jz clip_blit;
		movq mm0, [esi];
		dec eax;
		add esi, 8; 
		movq [edi], mm0;
		add edi, 8;
		jmp clip_quard;
//		jmp clip_blit;

line_end:
		mov ebx, sline;
		mov eax, dptr;
		add ebx, 4;
		add eax, pitch;
		mov esi, [ebx];
		mov dptr, eax;
		mov sline, ebx;
		mov edi, eax;
		xor ebx, ebx;
		dec h;
		jnz clip_blit;
blit_end:
		emms;
	}
}

static RleBitmap *test;
void initRleBitmap( void )
{
	Bitmap *bmp = LoadPicture( "pic\\test.tga" );
	if( bmp == NULL )
		return;
	test = CreateRleBitmap( bmp, 1 );
	if( test == NULL )
		return;
	SaveRleBitmap( "pic\\test.rle", test );
	delete test;
	test = LoadRleBitmap( "pic\\test.rle" );
	if( test == NULL )
		;//FailMsg( "rlebmp" );
}

void testRleBitmap( void )
{
/*	RleBitmapBlitOl( backScreen, 550, -40, test );
	RleBitmapBlitOl( backScreen, 560, 100, test );
	RleBitmapBlitOl( backScreen, 670, 200, test );
	RleBitmapBlitOl( backScreen, 580, 450, test );
	RleBitmapBlitOl( backScreen, -50, -50, test );*/
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲1区2区3区| 免费看欧美美女黄的网站| 日韩黄色在线观看| 成人看片黄a免费看在线| 在线电影一区二区三区| 亚洲欧洲在线观看av| 久久er99精品| 欧美视频在线一区| 亚洲国产精品精华液ab| 精品无人码麻豆乱码1区2区| 欧美三日本三级三级在线播放| 久久久久久久久久久黄色| 午夜电影网亚洲视频| 成人高清免费在线播放| 26uuu亚洲婷婷狠狠天堂| 亚洲国产综合91精品麻豆| 99久久精品99国产精品| 久久精品在这里| 久久精品国产精品亚洲精品| 欧美午夜电影一区| 亚洲三级在线看| 9i在线看片成人免费| 国产蜜臀av在线一区二区三区| 久久www免费人成看片高清| 欧美麻豆精品久久久久久| 亚洲资源中文字幕| 高清日韩电视剧大全免费| 久久伊99综合婷婷久久伊| 亚洲国产日韩精品| 欧美在线视频你懂得| 一区二区三区毛片| 91久久精品网| 亚洲乱码日产精品bd| 91国偷自产一区二区开放时间| 中文字幕在线免费不卡| 91尤物视频在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 国产成人免费视频网站| 国产欧美日韩激情| 成人不卡免费av| 亚洲欧洲日产国码二区| 不卡一区在线观看| 亚洲美女电影在线| 欧美日韩在线三级| 日本系列欧美系列| 欧美精品一区二区三区高清aⅴ| 久久精品国产99国产| 久久精品亚洲一区二区三区浴池| 成人午夜电影久久影院| 亚洲欧洲中文日韩久久av乱码| 91精品福利视频| 日本伊人午夜精品| 久久久夜色精品亚洲| a美女胸又www黄视频久久| 一区二区三区在线视频播放| 欧美日韩高清在线播放| 久久国产欧美日韩精品| 中文字幕免费一区| 欧洲av一区二区嗯嗯嗯啊| 91精品办公室少妇高潮对白| 蜜桃传媒麻豆第一区在线观看| 久久亚洲精精品中文字幕早川悠里 | 色天使色偷偷av一区二区| 亚洲第一狼人社区| 精品三级av在线| 99久久久国产精品| 亚洲成人在线观看视频| 精品福利一区二区三区免费视频| 成人激情免费网站| 婷婷久久综合九色综合绿巨人| 日韩精品一区二| 91小视频在线免费看| 奇米色一区二区| 中文字幕成人在线观看| 欧美男人的天堂一二区| 国产精品一二三区在线| 午夜电影网亚洲视频| 国产精品全国免费观看高清| 91精品欧美福利在线观看| 91视频精品在这里| 久久99在线观看| 亚洲欧美aⅴ...| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产成人午夜高潮毛片| 一级女性全黄久久生活片免费| 精品免费国产二区三区| 在线一区二区视频| 成人精品免费看| 美腿丝袜在线亚洲一区| 亚洲成人一二三| 中文字幕一区二区三区四区不卡| 欧美成人一区二区| 欧美日韩国产a| 97精品超碰一区二区三区| 国内精品久久久久影院色| 婷婷久久综合九色国产成人| 亚洲美女区一区| 国产精品久久久久影视| 2017欧美狠狠色| 日韩亚洲电影在线| 欧美午夜片在线观看| 色综合久久综合中文综合网| 国产精品99久久久久久久vr| 另类的小说在线视频另类成人小视频在线 | 国产欧美日韩综合| 日韩美女视频在线| 欧美一区日韩一区| 欧美日韩成人综合在线一区二区| 色猫猫国产区一区二在线视频| 成人中文字幕电影| 国产成人av福利| 国产精品亚洲成人| 国产精品一二三区在线| 国产精品一区二区免费不卡| 精品亚洲成a人| 久久精品国产久精国产| 久久成人精品无人区| 九一久久久久久| 国产在线播放一区二区三区| 久久激五月天综合精品| 美女精品一区二区| 寂寞少妇一区二区三区| 精品一二线国产| 国产精品伊人色| 国产精品69久久久久水密桃| 国产精品123区| 懂色av噜噜一区二区三区av| www.亚洲国产| 欧日韩精品视频| 欧美日韩电影在线播放| 日韩精品综合一本久道在线视频| 精品久久久久久亚洲综合网| 亚洲精品一线二线三线无人区| 久久女同互慰一区二区三区| 国产精品免费免费| 亚洲精品国产一区二区精华液 | 国产日韩欧美高清在线| 国产精品二三区| 亚洲精品v日韩精品| 香港成人在线视频| 美女网站一区二区| 国产成人亚洲精品青草天美| 99视频精品全部免费在线| 色综合久久久久| 欧美视频一区在线| 日韩一区二区三区免费看| 精品国产免费人成在线观看| 国产欧美日韩在线观看| 亚洲欧美偷拍另类a∨色屁股| 亚洲一区中文日韩| 久久av中文字幕片| 99久久国产综合精品麻豆| 欧美一区欧美二区| 中文字幕国产一区二区| 亚洲一区欧美一区| 美腿丝袜亚洲三区| 99久久精品99国产精品| 欧美一区二区三区性视频| 国产精品久久影院| 日韩影院在线观看| 成人激情午夜影院| 日韩视频永久免费| 亚洲免费观看视频| 精久久久久久久久久久| 色成年激情久久综合| www国产精品av| 一级精品视频在线观看宜春院| 毛片不卡一区二区| 欧美日韩一区国产| 国产精品私房写真福利视频| 日韩高清国产一区在线| 91在线码无精品| 精品剧情在线观看| 亚洲bdsm女犯bdsm网站| 成人一区二区三区视频| 日韩欧美高清在线| 夜色激情一区二区| 成人丝袜18视频在线观看| 欧美videossexotv100| 亚洲成人精品一区二区| 丁香一区二区三区| wwww国产精品欧美| 蜜臀国产一区二区三区在线播放| 欧美视频中文字幕| 亚洲蜜桃精久久久久久久| 国产成人免费视频网站 | 欧美日韩午夜精品| 国产精品久久久久久久久果冻传媒 | 一区二区激情小说| 成年人网站91| 久久精品水蜜桃av综合天堂| 蜜桃精品视频在线观看| 91精品国产免费久久综合| 亚洲一区二区视频在线观看| av电影在线观看一区| 国产精品人成在线观看免费| 国产白丝精品91爽爽久久| 国产亚洲成aⅴ人片在线观看| 国产精品亚洲人在线观看| 精品久久久久久久人人人人传媒|