From 29a0f6077871987e28f98b34f4d64af42d997014 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 10 Jul 2022 21:12:34 +0200 Subject: [PATCH] REVIEWED: `ImageResize()` #2572 --- src/rtextures.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/rtextures.c b/src/rtextures.c index 3328553c9..7cc350c5d 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -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);