clipblit.inc
来自「vc写的源程序,是关于游戏类的程序。调用了系统的很多API」· INC 代码 · 共 74 行
INC
74 行
// 计算要复制的位图是否在剪裁矩形之外
MOV ebx, dest_bmp;
MOV eax, x;
CMP eax, [ebx]BMP.clipright;
JG _bitblt_end;
MOV eax, y;
CMP eax, [ebx]BMP.clipbottom;
JG _bitblt_end;
MOV eax, x;
ADD eax, w;
DEC eax;
CMP eax, [ebx]BMP.clipleft;
JL _bitblt_end;
MOV eax, y;
ADD eax, h;
DEC eax;
CMP eax, [ebx]BMP.cliptop;
JL _bitblt_end;
// x和y小于剪裁矩形的剪裁
MOV edx, x;
CMP edx, [ebx]BMP.clipleft;
JNL _align_clip_x;
MOV eax, [ebx]BMP.clipleft;
SUB eax, x;
SUB w, eax;
MOV edx, [ebx]BMP.clipleft;
MOV x, edx;
MOV ecx, srcx;
ADD ecx, eax;
MOV srcx, ecx;
_align_clip_x:
MOV edx, y;
CMP edx, [ebx]BMP.cliptop;
JNL _align_clip_y;
MOV eax, [ebx]BMP.cliptop;
SUB eax, y;
SUB h, eax;
MOV edx, [ebx]BMP.cliptop;
MOV y, edx;
MOV ecx, srcy;
ADD ecx, eax;
MOV srcy, ecx;
_align_clip_y:
// x和y大于剪裁矩形的剪裁
MOV edx, [ebx]BMP.clipright;
SUB edx, [ebx]BMP.clipleft;
INC edx;
MOV eax, x;
ADD eax, w;
CMP eax, edx;
JLE _align_clip_right;
SUB eax, edx;
MOV ecx, w;
SUB ecx, eax;
MOV w, ecx;
_align_clip_right:
MOV edx, [ebx]BMP.clipbottom;
SUB edx, [ebx]BMP.cliptop;
INC edx;
MOV eax, y;
ADD eax, h;
CMP eax, edx;
JLE _align_clip_bottom;
SUB eax, edx;
MOV ecx, h;
SUB ecx, eax;
MOV h, ecx;
_align_clip_bottom:
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?