//bmps 中装的是CImage
for(int i = 0; i < bmps[nIndex].GetHeight(); i++){
for(int j = 0; j < bmps[nIndex].GetWidth();j++){
BYTE * tp1=(BYTE*)bmps[nIndex].GetPixelAddress(i,j);
BYTE * tp2=(BYTE*)bmps[nIndex+1].GetPixelAddress(i,j);
BYTE * tpOut=(BYTE*)bitmap.GetPixelAddress(i,j);
_asm{
emms
mov eax,fadetA
movupd xmm3,[eax]
mov ebx,fadetB
movupd xmm4,[ebx]
mov ecx,tp1
movupd xmm5,[ecx]//这里tp1无法读取内存
mov edx,tp2
movupd xmm6,[edx]
pxor xmm7,xmm7
punpcklbw xmm5,xmm7
punpcklbw xmm6,xmm7
punpcklbw xmm3,xmm7
punpcklbw xmm4,xmm7
pmullw xmm5,xmm3
pmullw xmm6,xmm4
psrlw xmm5,8
psrlw xmm6,8
paddw xmm5,xmm6
packuswb xmm5,xmm7
mov edi,tpOut
movsd [edi],xmm5
EMMS;
}
}
}
delete []fadetA;
delete []fadetB;
//tmp = bitmap;
//CDC* pDC;
//pDC = GetWindowDC();
//bitmap.Draw(pDC->m_hDC,0,0);
Ondraw();
}