Read block images from DDS file.

2.0
castano 17 years ago
parent 51a24b88a3
commit 6df5bd93ae

@ -483,8 +483,14 @@ void DirectDrawSurface::mipmap(Image * img, uint face, uint mipmap)
img->allocate(w, h);
// readLinearImage(stream, img);
// readBlockImage(stream, img);
if (header.pf.flags & DDPF_RGB)
{
readLinearImage(img);
}
else if (header.pf.flags & DDPF_FOURCC)
{
readBlockImage(img);
}
}
@ -517,9 +523,9 @@ void DirectDrawSurface::readBlockImage(Image * img)
readBlock(&block);
// Write color block.
for (uint y = 0; y < min(4U, 4*bh-h); y++)
for (uint y = 0; y < min(4U, h-4*bx); y++)
{
for (uint x = 0; x < min(4U, 4*bw-w); x++)
for (uint x = 0; x < min(4U, w-4*by); x++)
{
img->pixel(4*bx+x, 4*by+y) = block.color(x, y);
}
@ -624,8 +630,7 @@ uint DirectDrawSurface::blockSize() const
return 16;
};
// This should never happen.
nvDebugCheck(false);
// Not a block image.
return 0;
}

Loading…
Cancel
Save