diff options
-rw-r--r-- | graphics/yuv_to_rgb.cpp | 7 | ||||
-rw-r--r-- | graphics/yuv_to_rgb.h | 18 |
2 files changed, 25 insertions, 0 deletions
diff --git a/graphics/yuv_to_rgb.cpp b/graphics/yuv_to_rgb.cpp index b1107a7475..831736cd75 100644 --- a/graphics/yuv_to_rgb.cpp +++ b/graphics/yuv_to_rgb.cpp @@ -203,6 +203,13 @@ namespace Graphics { *((uint32 *)(d)) = (L[cr_r] | L[crb_g] | L[cb_b]) void convertYUV420ToRGB(Graphics::Surface *dst, const byte *ySrc, const byte *uSrc, const byte *vSrc, int yWidth, int yHeight, int yPitch, int uvPitch) { + // Sanity checks + assert(dst && dst->pixels); + assert(dst->format.bytesPerPixel == 2 || dst->format.bytesPerPixel == 4); + assert(ySrc && uSrc && vSrc); + assert((yWidth & 1) == 0); + assert((yHeight & 1) == 0); + const YUVToRGBLookup *lookup = YUVToRGBMan.getLookup(dst->format); byte *dstPtr = (byte *)dst->pixels; diff --git a/graphics/yuv_to_rgb.h b/graphics/yuv_to_rgb.h index 30f64ee570..9b561f2002 100644 --- a/graphics/yuv_to_rgb.h +++ b/graphics/yuv_to_rgb.h @@ -23,6 +23,12 @@ * */ +/** + * @file + * YUV to RGB conversion used in engines: + * - sword25 + */ + #ifndef GRAPHICS_YUV_TO_RGB_H #define GRAPHICS_YUV_TO_RGB_H @@ -33,6 +39,18 @@ namespace Graphics { struct Surface; +/** + * Convert a YUV420 image to an RGB surface + * + * @param dst the destination surface + * @param ySrc the source of the y component + * @param uSrc the source of the u component + * @param vSrc the source of the v component + * @param yWidth the width of the y surface (must be divisible by 2) + * @param yHeight the height of the y surface (must be divisible by 2) + * @param yPitch the pitch of the y surface + * @param uvPitch the pitch of the u and v surfaces + */ void convertYUV420ToRGB(Graphics::Surface *dst, const byte *ySrc, const byte *uSrc, const byte *vSrc, int yWidth, int yHeight, int yPitch, int uvPitch); } // End of namespace Graphics |