From 1166be62ae372d685cdfe71ae07336679a00f87e Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 17 May 2016 16:32:53 +0200 Subject: [PATCH] (gfx/video_texture_image.c) Drop more implementation details --- gfx/video_texture_image.c | 31 +++++++++++++++--------- libretro-common/formats/image_transfer.c | 21 +++++++++++++--- libretro-common/include/formats/image.h | 3 ++- 3 files changed, 39 insertions(+), 16 deletions(-) diff --git a/gfx/video_texture_image.c b/gfx/video_texture_image.c index 4fb4d337e2..5d14a219e8 100644 --- a/gfx/video_texture_image.c +++ b/gfx/video_texture_image.c @@ -26,9 +26,6 @@ #include #include #include -#ifdef HAVE_RJPEG -#include -#endif #ifdef HAVE_RTGA #include #endif @@ -229,6 +226,22 @@ static enum video_image_format video_texture_image_get_type(const char *path) return IMAGE_FORMAT_NONE; } +static enum image_type_enum video_texture_image_convert_fmt_to_type(enum video_image_format fmt) +{ + switch (fmt) + { + case IMAGE_FORMAT_PNG: + return IMAGE_TYPE_PNG; + case IMAGE_FORMAT_JPEG: + return IMAGE_TYPE_JPEG; + default: + case IMAGE_FORMAT_NONE: + break; + } + + return IMAGE_TYPE_NONE; +} + bool video_texture_image_load(struct texture_image *out_img, const char *path) { @@ -270,18 +283,12 @@ bool video_texture_image_load(struct texture_image *out_img, #endif break; case IMAGE_FORMAT_PNG: - if (video_texture_image_load_internal( - IMAGE_TYPE_PNG, - ptr,out_img, - a_shift, r_shift, g_shift, b_shift)) - goto success; - break; case IMAGE_FORMAT_JPEG: -#ifdef HAVE_RJPEG - if (rjpeg_image_load((uint8_t*)ptr, out_img, file_len, + if (video_texture_image_load_internal( + video_texture_image_convert_fmt_to_type(fmt), + ptr,out_img, a_shift, r_shift, g_shift, b_shift)) goto success; -#endif break; default: case IMAGE_FORMAT_NONE: diff --git a/libretro-common/formats/image_transfer.c b/libretro-common/formats/image_transfer.c index 57beac679f..5814e309a6 100644 --- a/libretro-common/formats/image_transfer.c +++ b/libretro-common/formats/image_transfer.c @@ -25,6 +25,8 @@ void image_transfer_free(void *data, enum image_type_enum type) rjpeg_free((rjpeg_t*)data); #endif break; + case IMAGE_TYPE_NONE: + break; } } @@ -59,16 +61,21 @@ bool image_transfer_start(void *data, enum image_type_enum type) case IMAGE_TYPE_PNG: #ifdef HAVE_RPNG if (!rpng_start((rpng_t*)data)) - return false; -#endif + break; + return true; +#else break; +#endif case IMAGE_TYPE_JPEG: #ifdef HAVE_RJPEG + return true; #endif break; + case IMAGE_TYPE_NONE: + break; } - return true; + return false; } bool image_transfer_is_valid( @@ -89,6 +96,8 @@ bool image_transfer_is_valid( #else break; #endif + case IMAGE_TYPE_NONE: + break; } return false; @@ -111,6 +120,8 @@ void image_transfer_set_buffer_ptr( rjpeg_set_buf_ptr((rjpeg_t*)data, (uint8_t*)ptr); #endif break; + case IMAGE_TYPE_NONE: + break; } } @@ -140,6 +151,8 @@ int image_transfer_process( #else break; #endif + case IMAGE_TYPE_NONE: + break; } return 0; @@ -162,6 +175,8 @@ bool image_transfer_iterate(void *data, enum image_type_enum type) #else break; #endif + case IMAGE_TYPE_NONE: + return false; } return true; diff --git a/libretro-common/include/formats/image.h b/libretro-common/include/formats/image.h index 6f2125d11c..dd11a96fdb 100644 --- a/libretro-common/include/formats/image.h +++ b/libretro-common/include/formats/image.h @@ -42,7 +42,8 @@ struct texture_image enum image_type_enum { - IMAGE_TYPE_PNG = 0, + IMAGE_TYPE_NONE = 0, + IMAGE_TYPE_PNG, IMAGE_TYPE_JPEG };