Use std::clamp in various core functions
This commit is contained in:
parent
0c57408ed8
commit
bcf647342a
@ -1216,8 +1216,8 @@ void render_target::compute_visible_area(s32 target_width, s32 target_height, fl
|
||||
// now apply desired scale mode and aspect correction
|
||||
if (m_keepaspect && target_aspect > src_aspect) xscale *= src_aspect / target_aspect * (maxyscale / yscale);
|
||||
if (m_keepaspect && target_aspect < src_aspect) yscale *= target_aspect / src_aspect * (maxxscale / xscale);
|
||||
if (x_is_integer) xscale = std::min(maxxscale, std::max(1.0f, render_round_nearest(xscale)));
|
||||
if (y_is_integer) yscale = std::min(maxyscale, std::max(1.0f, render_round_nearest(yscale)));
|
||||
if (x_is_integer) xscale = std::clamp(render_round_nearest(xscale), 1.0f, maxxscale);
|
||||
if (y_is_integer) yscale = std::clamp(render_round_nearest(yscale), 1.0f, maxyscale);
|
||||
|
||||
// check if we have user defined scale factors, if so use them instead
|
||||
int user_scale_x = target_is_portrait? m_int_scale_y : m_int_scale_x;
|
||||
|
@ -15,6 +15,7 @@
|
||||
|
||||
#include "rendertypes.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
|
||||
|
||||
@ -126,11 +127,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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -383,11 +383,8 @@ public:
|
||||
// write a sample to the buffer, clamping to +/- the clamp value
|
||||
void put_clamp(s32 index, sample_t sample, sample_t clamp = 1.0)
|
||||
{
|
||||
if (sample > clamp)
|
||||
sample = clamp;
|
||||
if (sample < -clamp)
|
||||
sample = -clamp;
|
||||
put(index, sample);
|
||||
assert(clamp >= sample_t(0));
|
||||
put(index, std::clamp(sample, -clamp, clamp));
|
||||
}
|
||||
|
||||
// write a sample to the buffer, converting from an integer with the given maximum
|
||||
@ -399,11 +396,8 @@ public:
|
||||
// write a sample to the buffer, converting from an integer with the given maximum
|
||||
void put_int_clamp(s32 index, s32 sample, s32 maxclamp)
|
||||
{
|
||||
if (sample > maxclamp)
|
||||
sample = maxclamp;
|
||||
else if (sample < -maxclamp)
|
||||
sample = -maxclamp;
|
||||
put_int(index, sample, maxclamp);
|
||||
assert(maxclamp >= 0);
|
||||
put_int(index, std::clamp(sample, -maxclamp, maxclamp), maxclamp);
|
||||
}
|
||||
|
||||
// safely add a sample to the buffer
|
||||
|
@ -63,10 +63,10 @@ void do_draw_box(screen_device &sdev, float x1, float y1, float x2, float y2, ui
|
||||
{
|
||||
float const sc_width(sdev.visible_area().width());
|
||||
float const sc_height(sdev.visible_area().height());
|
||||
x1 = std::min(std::max(0.0f, x1), sc_width) / sc_width;
|
||||
y1 = std::min(std::max(0.0f, y1), sc_height) / sc_height;
|
||||
x2 = std::min(std::max(0.0f, x2), sc_width) / sc_width;
|
||||
y2 = std::min(std::max(0.0f, y2), sc_height) / sc_height;
|
||||
x1 = std::clamp(x1, 0.0f, sc_width) / sc_width;
|
||||
y1 = std::clamp(y1, 0.0f, sc_height) / sc_height;
|
||||
x2 = std::clamp(x2, 0.0f, sc_width) / sc_width;
|
||||
y2 = std::clamp(y2, 0.0f, sc_height) / sc_height;
|
||||
mame_machine_manager::instance()->ui().draw_outlined_box(sdev.container(), x1, y1, x2, y2, fgcolor, bgcolor);
|
||||
}
|
||||
|
||||
@ -74,10 +74,10 @@ void do_draw_line(screen_device &sdev, float x1, float y1, float x2, float y2, u
|
||||
{
|
||||
float const sc_width(sdev.visible_area().width());
|
||||
float const sc_height(sdev.visible_area().height());
|
||||
x1 = std::min(std::max(0.0f, x1), sc_width) / sc_width;
|
||||
y1 = std::min(std::max(0.0f, y1), sc_height) / sc_height;
|
||||
x2 = std::min(std::max(0.0f, x2), sc_width) / sc_width;
|
||||
y2 = std::min(std::max(0.0f, y2), sc_height) / sc_height;
|
||||
x1 = std::clamp(x1, 0.0f, sc_width) / sc_width;
|
||||
y1 = std::clamp(y1, 0.0f, sc_height) / sc_height;
|
||||
x2 = std::clamp(x2, 0.0f, sc_width) / sc_width;
|
||||
y2 = std::clamp(y2, 0.0f, sc_height) / sc_height;
|
||||
sdev.container().add_line(x1, y1, x2, y2, UI_LINE_WIDTH, rgb_t(color), PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
|
||||
}
|
||||
|
||||
@ -89,7 +89,7 @@ void do_draw_text(lua_State *L, screen_device &sdev, sol::object &xobj, float y,
|
||||
float x = 0;
|
||||
if (xobj.is<float>())
|
||||
{
|
||||
x = std::min(std::max(0.0f, xobj.as<float>()), sc_width) / sc_width;
|
||||
x = std::clamp(xobj.as<float>(), 0.0f, sc_width) / sc_width;
|
||||
}
|
||||
else if (xobj.is<char const *>())
|
||||
{
|
||||
@ -106,7 +106,7 @@ void do_draw_text(lua_State *L, screen_device &sdev, sol::object &xobj, float y,
|
||||
luaL_error(L, "Error in param 1 to draw_text");
|
||||
return;
|
||||
}
|
||||
y = std::min(std::max(0.0f, y), sc_height) / sc_height;
|
||||
y = std::clamp(y, 0.0f, sc_height) / sc_height;
|
||||
mame_machine_manager::instance()->ui().draw_text_full(
|
||||
sdev.container(),
|
||||
msg,
|
||||
|
Loading…
Reference in New Issue
Block a user