|
|
@ -1414,10 +1414,12 @@ void ImageResize(Image *image, int newWidth, int newHeight) |
|
|
|
// Security check to avoid program crash |
|
|
|
if ((image->data == NULL) || (image->width == 0) || (image->height == 0)) return; |
|
|
|
|
|
|
|
bool fastPath = true; |
|
|
|
if ((image->format != PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) && (image->format != PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) && (image->format != PIXELFORMAT_UNCOMPRESSED_R8G8B8) && (image->format != PIXELFORMAT_UNCOMPRESSED_R8G8B8A8)) fastPath = true; |
|
|
|
|
|
|
|
if (fastPath) |
|
|
|
// Check if we can use a fast path on image scaling |
|
|
|
// It can be for 8 bit per channel images with 1 to 4 channels per pixel |
|
|
|
if ((image->format == PIXELFORMAT_UNCOMPRESSED_GRAYSCALE) || |
|
|
|
(image->format == PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA) || |
|
|
|
(image->format == PIXELFORMAT_UNCOMPRESSED_R8G8B8) || |
|
|
|
(image->format == PIXELFORMAT_UNCOMPRESSED_R8G8B8A8)) |
|
|
|
{ |
|
|
|
int bytesPerPixel = GetPixelDataSize(1, 1, image->format); |
|
|
|
unsigned char *output = (unsigned char *)RL_MALLOC(newWidth*newHeight*bytesPerPixel); |
|
|
|