• Advertisement

Archived

This topic is now archived and is closed to further replies.

Flipping Bitmaps

This topic is 5948 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello, I have created a function for my bitmap loader that flips the bitmap vertically, since most bitmaps are bottom-up. It works fine for 8-, 16- and 24-bit modes, but it shuts down my game rather nicely when I try to do it in 32-bit mode. Here is my code: /////////////// // Get the image UCHAR *image = bitmap->buffer; // Get the size of each line of the bitmap int bytesPerLine = bitmap->bitmapInfoHeader.biWidth * (bitmap->bitmapInfoHeader.biBitCount / 8); // Get the number of lines in the bitmap int height = bitmap->bitmapInfoHeader.biHeight; // Allocate the temporary buffer UCHAR *tempBuffer = (UCHAR *)malloc (bytesPerLine * height); if (!(tempBuffer)) { App->ReportError (true, "Bitmap error", "Unable to allocate bitmap buffer: %s!", filename); return FALSE; } // Copy image to work area // ******FAILS HERE****** memcpy (tempBuffer, image, bytesPerLine * height); // Flip vertically for (index = 0; index < height; index++) memcpy (&image[((height - 1) - index) * bytesPerLine], &tempBuffer[index * bytesPerLine], bytesPerLine); // Release the memory free (tempBuffer); //////////////// Does anyone know why? Thanks! Jon

Share this post


Link to post
Share on other sites
Advertisement

  • Advertisement