From 6b3c3f326a61980f01d5fb63c468dbc4aa01b079 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 20 Mar 2016 05:12:53 +0100 Subject: [PATCH] Cleanups --- libretro-common/include/formats/rbmp.h | 17 ++++++++++------- screenshot.c | 24 ++++++++++++++++++++---- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/libretro-common/include/formats/rbmp.h b/libretro-common/include/formats/rbmp.h index bce91ea3c0..0e9ba5b33c 100644 --- a/libretro-common/include/formats/rbmp.h +++ b/libretro-common/include/formats/rbmp.h @@ -29,15 +29,18 @@ extern "C" { #endif -typedef enum -{ - RBMP_SOURCE_TYPE_BGR24, - RBMP_SOURCE_TYPE_XRGB888, - RBMP_SOURCE_TYPE_RGB565, - RBMP_SOURCE_TYPE_ARGB8888, +typedef enum +{ + RBMP_SOURCE_TYPE_DONT_CARE, + RBMP_SOURCE_TYPE_BGR24, + RBMP_SOURCE_TYPE_XRGB888, + RBMP_SOURCE_TYPE_RGB565, + RBMP_SOURCE_TYPE_ARGB8888 } rbmp_source_type; -bool rbmp_save_image(const char *filename, const void *frame, +bool rbmp_save_image( + const char *filename, + const void *frame, unsigned width, unsigned height, unsigned pitch, rbmp_source_type type); diff --git a/screenshot.c b/screenshot.c index 58f9d0da40..6b157ea585 100644 --- a/screenshot.c +++ b/screenshot.c @@ -115,12 +115,28 @@ static bool screenshot_dump(const char *folder, const void *frame, scaler_ctx_gen_reset(&scaler); RARCH_LOG("Using RPNG for PNG screenshots.\n"); - ret = rpng_save_image_bgr24(filename, - out_buffer, width, height, width * 3); + ret = rpng_save_image_bgr24( + filename, + out_buffer, + width, + height, + width * 3 + ); free(out_buffer); #else - ret = rbmp_save_image(filename, frame, width, height, pitch, bgr24, - (video_driver_get_pixel_format() == RETRO_PIXEL_FORMAT_XRGB8888) ); + enum rbmp_source_type bmp_type = RBMP_SOURCE_TYPE_DONT_CARE; + + if (bgr24) + bmp_type = RBMP_SOURCE_TYPE_BGR24; + else if (video_driver_get_pixel_format() == RETRO_PIXEL_FORMAT_XRGB8888) + bmp_type = RBMP_SOURCE_TYPE_XRGB8888; + + ret = rbmp_save_image(filename, + frame, + width, + height, + pitch, + bmp_type); #endif if (!ret) RARCH_ERR("Failed to take screenshot.\n");