|
|
@ -3916,7 +3916,6 @@ void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color |
|
|
|
if ((dst->data == NULL) || (dst->width == 0) || (dst->height == 0) || |
|
|
|
(src.data == NULL) || (src.width == 0) || (src.height == 0)) return; |
|
|
|
|
|
|
|
if (dst->mipmaps > 1) TRACELOG(LOG_WARNING, "Image drawing only applied to base mipmap level"); |
|
|
|
if (dst->format >= PIXELFORMAT_COMPRESSED_DXT1_RGB) TRACELOG(LOG_WARNING, "Image drawing not supported for compressed formats"); |
|
|
|
else |
|
|
|
{ |
|
|
@ -4029,6 +4028,34 @@ void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color |
|
|
|
} |
|
|
|
|
|
|
|
if (useSrcMod) UnloadImage(srcMod); // Unload source modified image |
|
|
|
|
|
|
|
if (dst->mipmaps > 1 && src.mipmaps > 1) { |
|
|
|
Image mipmapDst = *dst; |
|
|
|
mipmapDst.data = (char *) mipmapDst.data + GetPixelDataSize(mipmapDst.width, mipmapDst.height, mipmapDst.format); |
|
|
|
mipmapDst.width /= 2; |
|
|
|
mipmapDst.height /= 2; |
|
|
|
mipmapDst.mipmaps--; |
|
|
|
|
|
|
|
Image mipmapSrc = src; |
|
|
|
mipmapSrc.data = (char *) mipmapSrc.data + GetPixelDataSize(mipmapSrc.width, mipmapSrc.height, mipmapSrc.format); |
|
|
|
mipmapSrc.width /= 2; |
|
|
|
mipmapSrc.height /= 2; |
|
|
|
mipmapSrc.mipmaps--; |
|
|
|
|
|
|
|
Rectangle mipmapSrcRec = srcRec; |
|
|
|
mipmapSrcRec.width /= 2; |
|
|
|
mipmapSrcRec.height /= 2; |
|
|
|
mipmapSrcRec.x /= 2; |
|
|
|
mipmapSrcRec.y /= 2; |
|
|
|
|
|
|
|
Rectangle mipmapDstRec = dstRec; |
|
|
|
mipmapDstRec.width /= 2; |
|
|
|
mipmapDstRec.height /= 2; |
|
|
|
mipmapDstRec.x /= 2; |
|
|
|
mipmapDstRec.y /= 2; |
|
|
|
|
|
|
|
ImageDraw(&mipmapDst, mipmapSrc, mipmapSrcRec, mipmapDstRec, tint); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|