diff options
Diffstat (limited to 'src/emu/rendutil.h')
-rw-r--r-- | src/emu/rendutil.h | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/emu/rendutil.h b/src/emu/rendutil.h index 9208d729352..71e5bdc95c3 100644 --- a/src/emu/rendutil.h +++ b/src/emu/rendutil.h @@ -15,7 +15,11 @@ #include "rendertypes.h" +#include "utilfwd.h" + +#include <algorithm> #include <cmath> +#include <utility> /* ----- image formats ----- */ @@ -38,14 +42,14 @@ enum ru_imgformat /* ----- render utilities ----- */ -void render_resample_argb_bitmap_hq(bitmap_argb32 &dest, bitmap_argb32 &source, const render_color &color, bool force = false); -bool render_clip_line(render_bounds *bounds, const render_bounds *clip); -bool render_clip_quad(render_bounds *bounds, const render_bounds *clip, render_quad_texuv *texcoords); -void render_line_to_quad(const render_bounds *bounds, float width, float length_extension, render_bounds *bounds0, render_bounds *bounds1); -void render_load_msdib(bitmap_argb32 &bitmap, util::core_file &file); -void render_load_jpeg(bitmap_argb32 &bitmap, util::core_file &file); -bool render_load_png(bitmap_argb32 &bitmap, util::core_file &file, bool load_as_alpha_to_existing = false); -ru_imgformat render_detect_image(util::core_file &file); +void render_resample_argb_bitmap_hq(bitmap_argb32 &dest, bitmap_argb32 &source, const render_color &color, bool force = false) noexcept; +bool render_clip_line(render_bounds &bounds, const render_bounds &clip); +bool render_clip_quad(render_bounds &bounds, const render_bounds &clip, render_quad_texuv *texcoords); +std::pair<render_bounds, render_bounds> render_line_to_quad(const render_bounds &bounds, float width, float length_extension); +void render_load_msdib(bitmap_argb32 &bitmap, util::random_read &file) noexcept; +void render_load_jpeg(bitmap_argb32 &bitmap, util::random_read &file) noexcept; +bool render_load_png(bitmap_argb32 &bitmap, util::random_read &file, bool load_as_alpha_to_existing = false) noexcept; +ru_imgformat render_detect_image(util::random_read &file) noexcept; @@ -69,7 +73,7 @@ static inline float render_round_nearest(float f) flip flags -------------------------------------------------*/ -static inline int orientation_swap_flips(int orientation) +constexpr int orientation_swap_flips(int orientation) { return (orientation & ORIENTATION_SWAP_XY) | ((orientation & ORIENTATION_FLIP_X) ? ORIENTATION_FLIP_Y : 0) | @@ -82,7 +86,7 @@ static inline int orientation_swap_flips(int orientation) that will undo another orientation -------------------------------------------------*/ -static inline int orientation_reverse(int orientation) +constexpr int orientation_reverse(int orientation) { /* if not swapping X/Y, then just apply the same transform to reverse */ if (!(orientation & ORIENTATION_SWAP_XY)) @@ -99,7 +103,7 @@ static inline int orientation_reverse(int orientation) after applying two subsequent orientations -------------------------------------------------*/ -static inline int orientation_add(int orientation1, int orientation2) +constexpr int orientation_add(int orientation1, int orientation2) { /* if the 2nd transform doesn't swap, just XOR together */ if (!(orientation2 & ORIENTATION_SWAP_XY)) @@ -126,11 +130,7 @@ static inline float apply_brightness_contrast_gamma_fp(float srcval, float brigh srcval = (srcval * contrast) + brightness - 1.0f; /* clamp and return */ - if (srcval < 0.0f) - srcval = 0.0f; - if (srcval > 1.0f) - srcval = 1.0f; - return srcval; + return std::clamp(srcval, 0.0f, 1.0f); } |