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

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

?? bitmap32.cpp

?? 游戲c++開發(fā)簡例
?? CPP
字號:
#include "bitmap.hpp"
#include "gl.h"

PixelInfo pixelInfo32 = {
	0xff0000,// Red mask in color ( color's type : int )
	0,	// how many bits to shift right to convert color(int) to the actual pixel value 
	0xff0000,// the Red value in pixel
	16,	// how many bits to shift right to get Red value from pixel
	0xff0000,	// green
	0,
	0xff0000,
	8,
	0xff0000,	//blue
	0,
	0xff0000,
	0
};

DWORD Bitmap32::GetPixel( int x, int y )
{
	if( x < 0 || x >= width || y < 0 || y >= height )
		return -1;
	
	return (( long* )line[y])[x];
}

// drawMode will do its work
// solid xor blend
void Bitmap32::PutPixel( int x, int y )
{
	if( clip ){
		if( x < cl || x >= cr || y < ct || y >= cb )
			return;
	}
	else{
		if( x < 0 || x >= width || y < 0 || y >= height )
			return;
	}
	
	long pixel = color;
	
	if( drawMode & XorMode )
		pixel ^= *(long*)( line[y] + x * 4 );
	else if( drawMode & AlphaMode )
		pixel = pixel;	// how to do alpha blend ?
		
	*(long*)( line[y] + x * 4 ) = pixel;
}

// set current draw color
void Bitmap32::SetColor( int color )
{
	Bitmap32::color = color & 0xffffff;
}

void Bitmap32::SetColorKey( int color )
{
	Bitmap32::colorKey = color & 0xffffff;
}

// void Bitmap32::BlitMask( ....... )
BLITMASK( 32 )

void Bitmap32::Blit( Bitmap* dest, int x, int y, int sx, int sy, int w, int h )
{
	BLITCLIP()
	
	if( dest == this ){
		if( y >= sy )
			BlitInside32( x, y, sx, sy, w, h );
		else if( y == sy && sx < x )
			BlitInside32( x, y, sx, sy, w, h );
		else
			BlitOutside32( (Bitmap32*)dest, x, y, sx, sy, w, h );
	}
	else{
		BlitOutside32( (Bitmap32*)dest, x, y, sx, sy, w, h );
	}
}

// the source bitmap and the destination bitmap are the same bitmap  
// reverse must be considered
void Bitmap32::BlitInside32( int x, int y, int sx, int sy, int w, int h )
{
	char** line = Bitmap32::line;

	__asm{
		push es
		mov ax, ds
		mov es, ax
		/* copy from the bottom to the top */
		mov eax, sy
		mov ebx, h
		dec ebx
		add eax, ebx
		mov sy, eax
		add y, ebx
		inc ebx
		
		mov ecx, w
		mov edx, sx
		dec ecx
		add edx, ecx
		mov sx, edx
		add x, ecx
		std
		inc ecx
		shl sx, 2
		shl x, 2
		mov edx, y
		shl eax, 2
		shl edx, 2
		
	blitinside32_dw:
		mov ecx, w
		mov esi, line
		mov edi, esi
		mov esi, dword ptr [esi+eax]
		add esi, sx
		mov edi, dword ptr [edi+edx]
		add edi, x
		repnz movsd
		sub eax, 4
		sub edx, 4
		dec ebx
		jnz blitinside32_dw
		
		pop es
	}
}

// blit from a bitmap to another bitmap
// no reverse at all
void Bitmap32::BlitOutside32( Bitmap32* dest, int x, int y, int sx, int sy, int w, int h )
{
	char** dline = dest->line;
	char** sline = Bitmap32::line;

	__asm{
		push es
		mov ax, ds
		mov es, ax
		
		mov ebx, h
		mov eax, y
		mov edx, sy
		shl eax, 2
		shl edx, 2
		cld
		shl sx, 2
		shl x, 2
		
		blitoutside32_dwloop:
		mov ecx, w 	/* source bitmap line */
		mov esi, sline
		mov esi, [esi+edx]
		add esi, sx
		mov edi, dline 	/* destination bitmap line */
		mov edi, dword ptr [edi+eax]
		add edi, x
		repnz movsd
		add edx, 4
		add eax, 4
		dec ebx
		jnz blitoutside32_dwloop
		
		pop es
	}
}

// blit to another bitmap with SOURCE color key
void Bitmap32::BlitMasked32( Bitmap32* dest, int x, int y, int sx, int sy, int w, int h )
{
	char** dline = dest->line;
	char** sline = Bitmap32::line;
	int colorkey = Bitmap32::colorKey;

	__asm{
		push es
		mov ax, ds
		mov es, ax
		
		mov eax, colorkey
		mov ebx, h
		shl y, 2
		shl sy, 2
		shl sx, 2
		shl x, 2
		
	blitmasked32_dw:
		mov esi, sline
		add esi, sy
		mov esi, [esi]
		add esi, sx
		mov edi, dline
		add edi, y
		mov edi, [edi]
		add edi, x
		mov ecx, w
		
	blitmasked32_loop:
		mov edx, ds:[esi] 	/* source pixel */
		add esi, 4
		cmp edx, eax 	/* is equal colorkey ? */
		je blitmasked32_skip
		mov es:[edi], edx
	blitmasked32_skip:
		add edi, 4
		loop blitmasked32_loop
		
		add y, 4
		add sy, 4
		dec ebx
		jnz blitmasked32_dw
		pop es
	}
}

// clear a rectangle area with the color
// clip will do its work
void Bitmap32::Clear( int l, int t, int w, int h, int color )
{
	char **line = Bitmap32::line;
	
	if( clip ){
		if( l < cl ){
			w -= cl - l;
			l = cl;
		}
		if( t < ct ){
			h -= ct - t;
			t = ct;
		}
		if( l + w > cr )
			w = cr - l;
		if( t + h > cb )
			h = cb - t;
	}
	else{
		if( l < 0 ){
			w += l;
			l = 0;
		}
		if( t < 0 ){
			h += t;
			t = 0;
		}
		if( l + w > width )
			w = width - l;
		if( t + h > height )
			h = height - t;
	}
	
	__asm{
		push es
		mov ax, ds
		mov es, ax
		
		mov eax, color
		mov edx, t
		mov ebx, h
		shl edx, 2
		cld
		mov esi, l
		shl esi, 2
		mov ecx, w
		and ecx, 1
		jnz clear32_1dw
		
	clear32_dw:
		mov edi, line
		mov edi, [edi+edx]
		add edi, esi
		mov ecx, w
		repnz stosd
		add edx, 4
		dec ebx
		jnz clear32_dw
		jmp clear32_end
		
	clear32_1dw:
		mov edi, line
		mov edi, [edi+edx]
		add edi, esi
		stosd
		add edx, 4
		dec ebx
		jnz clear32_1dw
		
		clear32_end:
		pop es
	}
}

Bitmap* Bitmap32::ConvertFormat( int colordepth )
{
	return NULL;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
a亚洲天堂av| 国产欧美精品一区aⅴ影院| 亚洲乱码国产乱码精品精98午夜 | 色国产综合视频| 自拍偷拍欧美精品| 色婷婷综合久久| 香蕉成人啪国产精品视频综合网| 欧美老人xxxx18| 美女诱惑一区二区| 日韩三级在线免费观看| 激情综合色丁香一区二区| 欧美激情在线一区二区三区| 波多野结衣亚洲一区| 亚洲欧洲99久久| 成人av小说网| 亚洲免费看黄网站| 欧美精品少妇一区二区三区| 精品午夜久久福利影院| 国产精品久久午夜夜伦鲁鲁| 欧美日韩综合不卡| 激情图区综合网| 亚洲人吸女人奶水| 51精品国自产在线| 国产成都精品91一区二区三| 亚洲一区二区三区免费视频| 日韩视频免费观看高清完整版在线观看| 久久99精品国产麻豆婷婷洗澡| 中文字幕av资源一区| 欧美影院一区二区| 韩国v欧美v日本v亚洲v| 国产精品不卡一区二区三区| 欧美日韩综合在线| 高清不卡一区二区在线| 亚洲福中文字幕伊人影院| 精品电影一区二区三区| 91浏览器打开| 国产在线观看免费一区| 亚洲综合精品自拍| 亚洲国产精品激情在线观看| 在线成人高清不卡| 懂色av一区二区三区蜜臀| 婷婷成人综合网| 自拍偷拍国产精品| 日韩欧美国产综合| 欧美色倩网站大全免费| 成人午夜激情片| 激情综合色综合久久| 五月婷婷欧美视频| 国产精品白丝在线| 国产亚洲欧美色| 欧美一区二区三区免费在线看| 91美女在线观看| 丰满放荡岳乱妇91ww| 美女爽到高潮91| 午夜精品视频一区| 亚洲精品乱码久久久久久黑人| 国产丝袜美腿一区二区三区| 日韩欧美高清在线| 69堂国产成人免费视频| 色综合久久综合网97色综合| 成人在线视频首页| 国产精品18久久久久久久久久久久| 日韩不卡手机在线v区| 亚洲综合网站在线观看| 国产精品久久久久久久浪潮网站| 26uuu色噜噜精品一区二区| 91精品蜜臀在线一区尤物| 欧美日韩激情在线| 欧洲一区在线观看| 欧美亚洲尤物久久| 91一区在线观看| 91丨porny丨中文| 不卡一区二区三区四区| 不卡一区二区三区四区| www.99精品| 99在线热播精品免费| 成人午夜电影网站| 99视频精品全部免费在线| gogogo免费视频观看亚洲一| 成人性视频免费网站| 成人av网站大全| 91一区二区在线| 在线观看视频一区| 欧美三级电影网站| 51午夜精品国产| 欧美大片在线观看| 精品99久久久久久| 国产亚洲1区2区3区| 欧美国产97人人爽人人喊| 日韩一区中文字幕| 亚洲午夜久久久久久久久久久| 亚洲国产精品精华液网站| 午夜在线成人av| 免费成人深夜小野草| 裸体健美xxxx欧美裸体表演| 国模一区二区三区白浆| 国产盗摄女厕一区二区三区| 成人99免费视频| 91黄视频在线观看| 欧美一级在线视频| 国产日韩欧美亚洲| 亚洲色图在线看| 日韩高清在线一区| 国产精品一区二区91| 不卡在线观看av| 91精品国产91热久久久做人人| 2021国产精品久久精品| 国产精品精品国产色婷婷| 亚洲国产精品精华液网站| 久久99久国产精品黄毛片色诱| 国产成人综合亚洲网站| 色94色欧美sute亚洲线路一ni | 日韩欧美国产高清| 日韩精品一区二区三区swag| 国产高清一区日本| 欧美日韩国产小视频在线观看| 免费国产亚洲视频| 亚洲国产一区二区视频| 蜜臀久久久99精品久久久久久| gogo大胆日本视频一区| 色婷婷综合视频在线观看| 欧美一级专区免费大片| 国产精品视频九色porn| 亚洲午夜视频在线| 国产不卡视频在线观看| 91精品国产综合久久蜜臀| 国产精品久久久久久久久动漫 | 日本道色综合久久| 日韩美女在线视频| 亚洲欧洲综合另类| 国产主播一区二区三区| 欧美日韩精品一区视频| 国产精品久久久久久户外露出| 日韩二区三区四区| 一本色道久久加勒比精品| 久久网站最新地址| 亚洲综合视频网| 国产精品亚洲视频| 欧美另类变人与禽xxxxx| 久久毛片高清国产| 日韩和欧美一区二区| 国产成人欧美日韩在线电影| 欧美视频自拍偷拍| 国产精品66部| 久久尤物电影视频在线观看| 亚洲精品乱码久久久久久黑人| 毛片一区二区三区| 亚洲蜜臀av乱码久久精品蜜桃| 奇米色777欧美一区二区| 国产福利一区在线观看| 久久久午夜精品理论片中文字幕| 日韩精品免费视频人成| 国产亚洲一区二区三区在线观看| 国产一区二区久久| 日韩午夜在线观看| 欧美裸体bbwbbwbbw| 337p粉嫩大胆噜噜噜噜噜91av| 精品成a人在线观看| 另类小说欧美激情| 欧美一区二区成人| 97久久超碰国产精品| 亚洲伊人色欲综合网| 久久久久综合网| 91免费版pro下载短视频| 亚洲国产中文字幕| 国产婷婷色一区二区三区在线| 99精品偷自拍| 亚洲资源在线观看| 欧美色图在线观看| 欧美丰满一区二区免费视频| 久久se精品一区精品二区| 国产视频一区在线播放| 国产一区二区不卡老阿姨| 精品欧美乱码久久久久久1区2区| 久久精品国内一区二区三区| 国产高清精品久久久久| fc2成人免费人成在线观看播放| 亚洲成av人综合在线观看| 国产精品伦一区二区三级视频| 麻豆成人在线观看| 色一情一伦一子一伦一区| 久久精品视频免费| 黄页网站大全一区二区| 伊人色综合久久天天人手人婷| 久久精品国产精品青草| 色8久久精品久久久久久蜜| 久久综合色婷婷| 亚洲成av人片在线观看| 懂色一区二区三区免费观看| 在线观看视频欧美| 7777精品伊人久久久大香线蕉的 | 国产婷婷色一区二区三区在线| 亚洲.国产.中文慕字在线| 综合久久国产九一剧情麻豆| 99久免费精品视频在线观看| 精品国产污污免费网站入口| 国产福利一区在线| 国产精品一卡二卡| 久久影院午夜片一区| 精品亚洲免费视频|