⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 maskalphablit.inc

📁 vc写的源程序,是关于游戏类的程序。调用了系统的很多API
💻 INC
字号:
// Alpha混合的位图复制(支持透明色)
		PUSH edi;
		PUSH esi;
#include "clipblit.inc"
		MOV ebx, dest_bmp; // 把dest_bmp.bit的地址保存在edi
		MOV edi, [ebx]BMP.bit;
		MOV edx, src_bmp; // 把src_bmp.bit的地址保存在edi
		MOV esi, [edx]BMP.bit;
		MOV ax, [edx]BMP.colorkey;
		MOV transcolor, ax;
		SAL x, 1;
		ADD edi, x;
		SAL srcx, 1;
		ADD esi, srcx;

		MOV eax, srcy;
		IMUL [edx]BMP.pitch_byte;
		ADD esi, eax;
		MOV eax, y;
		IMUL [ebx]BMP.pitch_byte;
		ADD edi, eax;

		MOV edx, src_bmp; // 把src_bmp.bit的地址保存在edi
		MOV ebx, [ebx]BMP.width;
		SUB ebx, w;
		SAL ebx, 1;
		MOV edx, [edx]BMP.width;
		SUB edx, w;
		SAL edx, 1;

		CLD;
		MOV ecx, h;
		ALIGN 4

_next_line:
		MOV h, ecx;
		MOV ecx, w;
		ALIGN 4

_line_loop:
		LODSW;
		CMP transcolor, ax;
		JZ _skip_pixel;
		MOV color1, ax;
		MOV ax, [edi];
		MOV color2, ax;
		JMP _odd_alpha_start; // 转到混合模块
_alpha_end:

		STOSW;
		JMP _loop;
_skip_pixel:
		ADD edi, 2;
		ALIGN 4
_loop:
		LOOP _line_loop;

		ADD esi, edx;
		ADD edi, ebx;
		MOV ecx, h;
		LOOP _next_line;
		ALIGN 4

_bitblt_end:
		POP esi;
		POP edi;
		JMP _alpha_bitblt_end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -