summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/d3d/d3dhlsl.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/render/d3d/d3dhlsl.c')
-rw-r--r--src/osd/modules/render/d3d/d3dhlsl.c48
1 files changed, 23 insertions, 25 deletions
diff --git a/src/osd/modules/render/d3d/d3dhlsl.c b/src/osd/modules/render/d3d/d3dhlsl.c
index d8a554e2e49..f03ba272e01 100644
--- a/src/osd/modules/render/d3d/d3dhlsl.c
+++ b/src/osd/modules/render/d3d/d3dhlsl.c
@@ -59,7 +59,7 @@ hlsl_options shaders::s_hlsl_presets[4] =
{ // 25% Shadow mask, 50% Scanlines, 3% Pincushion, 0 defocus, No Tint, 0.9 Exponent, 5% Floor, 25% Phosphor Return, 120% Saturation
true,
0.25f, { "adapture-grill.png" }, 6, 6, 0.1875f, 0.1875f, 0.0f, 0.0f,
- 0.03f, 0.03f, 0.03f, 0.03f,
+ 0.03f, 0.0f, 0.0f, 0.0f, 0.0f,
0.5f, 1.0f, 0.5f, 1.0f, 0.0f, 0.0f,
{ 0.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f },
@@ -82,7 +82,7 @@ hlsl_options shaders::s_hlsl_presets[4] =
{ // 25% Shadow mask, 0% Scanlines, 3% Pincushion, 0 defocus, No Tint, 0.9 Exponent, 5% Floor, 25% Phosphor Return, 120% Saturation
true,
0.25f, { "adapture-grill.png" }, 6, 6, 0.1875f, 0.1875f, 0.0f, 0.0f,
- 0.03f, 0.03f, 0.03f, 0.03f,
+ 0.03f, 0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.5f, 1.0f, 0.0f, 0.0f,
{ 0.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f },
@@ -105,7 +105,7 @@ hlsl_options shaders::s_hlsl_presets[4] =
{ // 25% Shadow mask, 0% Scanlines, 0% Pincushion, 0 defocus, No Tint, 0.9 Exponent, 5% Floor, 25% Phosphor Return, 120% Saturation
true,
0.25f, { "adapture-grill.png" }, 6, 6, 0.1875f, 0.1875f, 0.0f, 0.0f,
- 0.0f, 0.0f, 0.0f, 0.0f,
+ 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.5f, 1.0f, 0.0f, 0.0f,
{ 0.0f, 0.0f },
{ 0.0f, 0.0f, 0.0f },
@@ -128,7 +128,7 @@ hlsl_options shaders::s_hlsl_presets[4] =
{ // 25% Shadow mask, 100% Scanlines, 15% Pincushion, 3 defocus, 24-degree Tint Out, 1.5 Exponent, 5% Floor, 70% Phosphor Return, 80% Saturation, Bad Convergence
true,
0.25f, { "adapture-grill.png" }, 6, 6, 0.1875f, 0.1875f, 0.0f, 0.0f,
- 0.15f, 0.15f, 0.15f, 0.15f,
+ 0.15f, 0.0f, 0.0f, 0.0f, 0.0f,
1.0f, 1.0f, 0.5f, 1.0f, 0.0f, 0.5f,
{ 3.0f, 3.0f },
{ 0.5f,-0.33f,0.7f },
@@ -780,6 +780,7 @@ void shaders::init(base *d3dintf, running_machine *machine, d3d::renderer *rende
options->shadow_mask_v_offset = winoptions.screen_shadow_mask_v_offset();
options->curvature = winoptions.screen_curvature();
options->round_corner = winoptions.screen_round_corner();
+ options->smooth_border = winoptions.screen_smooth_border();
options->reflection = winoptions.screen_reflection();
options->vignetting = winoptions.screen_vignetting();
options->scanline_alpha = winoptions.screen_scanline_amount();
@@ -822,8 +823,7 @@ void shaders::init(base *d3dintf, running_machine *machine, d3d::renderer *rende
options->yiq_phase_count = winoptions.screen_yiq_phase_count();
options->vector_length_scale = winoptions.screen_vector_length_scale();
options->vector_length_ratio = winoptions.screen_vector_length_ratio();
- options->vector_bloom_scale = winoptions.screen_vector_bloom_scale();
- options->raster_bloom_scale = winoptions.screen_raster_bloom_scale();
+ options->bloom_scale = winoptions.screen_bloom_scale();
options->bloom_level0_weight = winoptions.screen_bloom_lvl0_weight();
options->bloom_level1_weight = winoptions.screen_bloom_lvl1_weight();
options->bloom_level2_weight = winoptions.screen_bloom_lvl2_weight();
@@ -1105,6 +1105,7 @@ int shaders::create_resources(bool reset)
distortion_effect->add_uniform("VignettingAmount", uniform::UT_FLOAT, uniform::CU_POST_VIGNETTING);
distortion_effect->add_uniform("CurvatureAmount", uniform::UT_FLOAT, uniform::CU_POST_CURVATURE);
distortion_effect->add_uniform("RoundCornerAmount", uniform::UT_FLOAT, uniform::CU_POST_ROUND_CORNER);
+ distortion_effect->add_uniform("SmoothBorderAmount", uniform::UT_FLOAT, uniform::CU_POST_SMOOTH_BORDER);
distortion_effect->add_uniform("ReflectionAmount", uniform::UT_FLOAT, uniform::CU_POST_REFLECTION);
vector_effect->add_uniform("ScreenDims", uniform::UT_VEC2, uniform::CU_SCREEN_DIMS);
@@ -1467,9 +1468,7 @@ int shaders::downsample_pass(render_target *rt, int source_index, poly_info *pol
bool prepare_vector =
PRIMFLAG_GET_VECTORBUF(poly->get_flags()) && vector_enable;
- float bloom_rescale = prepare_vector
- ? options->vector_bloom_scale
- : options->raster_bloom_scale;
+ float bloom_rescale = options->bloom_scale;
// skip downsample if no influencing settings
if (bloom_rescale == 0.0f)
@@ -1513,11 +1512,7 @@ int shaders::bloom_pass(render_target *rt, int source_index, poly_info *poly, in
{
int next_index = source_index;
- bool prepare_vector =
- PRIMFLAG_GET_VECTORBUF(poly->get_flags()) && vector_enable;
- float bloom_rescale = prepare_vector
- ? options->vector_bloom_scale
- : options->raster_bloom_scale;
+ float bloom_rescale = options->bloom_scale;
// skip bloom if no influencing settings
if (bloom_rescale == 0.0f)
@@ -2355,6 +2350,12 @@ static INT32 slider_round_corner(running_machine &machine, void *arg, std::strin
return slider_set(&(((hlsl_options*)arg)->round_corner), 0.01f, "%2.2f", str, newval);
}
+static INT32 slider_smooth_border(running_machine &machine, void *arg, std::string *str, INT32 newval)
+{
+ ((hlsl_options*)arg)->params_dirty = true;
+ return slider_set(&(((hlsl_options*)arg)->smooth_border), 0.01f, "%2.2f", str, newval);
+}
+
static INT32 slider_reflection(running_machine &machine, void *arg, std::string *str, INT32 newval)
{
((hlsl_options*)arg)->params_dirty = true;
@@ -2649,16 +2650,10 @@ static INT32 slider_vector_length_max(running_machine &machine, void *arg, std::
return slider_set(&(((hlsl_options*)arg)->vector_length_ratio), 1.0f, "%4f", str, newval);
}
-static INT32 slider_vector_bloom_scale(running_machine &machine, void *arg, std::string *str, INT32 newval)
+static INT32 slider_bloom_scale(running_machine &machine, void *arg, std::string *str, INT32 newval)
{
((hlsl_options*)arg)->params_dirty = true;
- return slider_set(&(((hlsl_options*)arg)->vector_bloom_scale), 0.001f, "%1.3f", str, newval);
-}
-
-static INT32 slider_raster_bloom_scale(running_machine &machine, void *arg, std::string *str, INT32 newval)
-{
- ((hlsl_options*)arg)->params_dirty = true;
- return slider_set(&(((hlsl_options*)arg)->raster_bloom_scale), 0.001f, "%1.3f", str, newval);
+ return slider_set(&(((hlsl_options*)arg)->bloom_scale), 0.001f, "%1.3f", str, newval);
}
static INT32 slider_bloom_lvl0_scale(running_machine &machine, void *arg, std::string *str, INT32 newval)
@@ -2743,6 +2738,7 @@ shaders::slider_desc shaders::s_sliders[] =
{ "Shadow Mask Offset Y", -100, 0, 100, 1, slider_shadow_mask_voffset },
{ "Screen Curvature", 0, 3, 100, 1, slider_curvature },
{ "Screen Round Corner", 0, 3, 100, 1, slider_round_corner },
+ { "Screen Smooth Border", 0, 3, 100, 1, slider_smooth_border },
{ "Screen Reflection", 0, 3, 100, 1, slider_reflection },
{ "Image Vignetting", 0, 3, 100, 1, slider_vignetting },
{ "Scanline Darkness", 0, 100, 100, 1, slider_scanline_alpha },
@@ -2792,8 +2788,7 @@ shaders::slider_desc shaders::s_sliders[] =
{ "Blue Phosphor Life", 0, 40, 100, 1, slider_blue_phosphor_life },
{ "Vector Length Attenuation", 0, 80, 100, 1, slider_vector_attenuation },
{ "Vector Attenuation Length Limit", 1, 500, 1000, 1, slider_vector_length_max },
- { "Vector Bloom Scale", 0, 300, 1000, 5, slider_vector_bloom_scale },
- { "Raster Bloom Scale", 0, 225, 1000, 5, slider_raster_bloom_scale },
+ { "Bloom Scale", 0, 250, 2000, 5, slider_bloom_scale },
{ "Bloom Level 0 Scale", 0, 100, 100, 1, slider_bloom_lvl0_scale },
{ "Bloom Level 1 Scale", 0, 21, 100, 1, slider_bloom_lvl1_scale },
{ "Bloom Level 2 Scale", 0, 19, 100, 1, slider_bloom_lvl2_scale },
@@ -3012,6 +3007,9 @@ void uniform::update()
case CU_POST_ROUND_CORNER:
m_shader->set_float("RoundCornerAmount", options->round_corner);
break;
+ case CU_POST_SMOOTH_BORDER:
+ m_shader->set_float("SmoothBorderAmount", options->smooth_border);
+ break;
case CU_POST_SHADOW_ALPHA:
m_shader->set_float("ShadowAlpha", shadersys->shadow_texture == NULL ? 0.0f : options->shadow_mask_alpha);
break;
@@ -3073,7 +3071,7 @@ void uniform::update()
break;
case CU_BLOOM_RESCALE:
- m_shader->set_float("BloomRescale", options->raster_bloom_scale);
+ m_shader->set_float("BloomRescale", options->bloom_scale);
break;
case CU_BLOOM_LVL0123_WEIGHTS:
{