void BitBlt(unsigned char* dstp, int dst_pitch, const unsigned char* srcp, int src_pitch, int row_size, int height, bool isse) { if ( (!height)|| (!row_size)) return; if (isse) { if (height == 1 || (src_pitch == dst_pitch && dst_pitch == row_size)) { memcpy_amd(dstp, srcp, row_size*height); } else { asm_BitBlt_ISSE(dstp,dst_pitch,srcp,src_pitch,row_size,height); } return; } if (height == 1 || (dst_pitch == src_pitch && src_pitch == row_size)) { memcpy(dstp, srcp, row_size*height); // Fizick: fixed bug } else { for (int y=height; y>0; --y) { memcpy(dstp, srcp, row_size); dstp += dst_pitch; srcp += src_pitch; } } }
/*__forceinline*/ void ClutBuffer_to_Array<u32>(u32* dst, u32 csa, u32 clutsize) { u8* clut = (u8*)GetClutBufferAddress<u32>(csa); memcpy_amd((u8*)dst, clut, clutsize); }