Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- u8* block=(u8*)data;
- u8* line[4];
- for (u32 y=0; y<height; y+=4)
- {
- // fetch the next 4 scanlines
- line[0]=(u8*)FreeImage_GetScanLine(src,height-y-1);
- line[1]=(u8*)FreeImage_GetScanLine(src,height-y-2);
- line[2]=(u8*)FreeImage_GetScanLine(src,height-y-3);
- line[3]=(u8*)FreeImage_GetScanLine(src,height-y-4);
- for (u32 x=0; x<width; x+=4)
- {
- for (int l=0; l<4; ++l)
- {
- // copy AR pairs
- block[ 0]=line[l][ 3]; block[ 1]=line[l][ 0];
- block[ 2]=line[l][ 7]; block[ 3]=line[l][ 4];
- block[ 4]=line[l][11]; block[ 5]=line[l][ 8];
- block[ 6]=line[l][15]; block[ 7]=line[l][12];
- // copy GB pairs
- block[32]=line[l][ 1]; block[33]=line[l][ 2];
- block[34]=line[l][ 5]; block[35]=line[l][ 6];
- block[36]=line[l][ 9]; block[37]=line[l][10];
- block[38]=line[l][13]; block[39]=line[l][14];
- block+=8;
- line[l]+=16;
- }
- block+=32;
- }
- }
Add Comment
Please, Sign In to add comment