summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/d3d/d3dhlsl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/render/d3d/d3dhlsl.cpp')
-rw-r--r--src/osd/modules/render/d3d/d3dhlsl.cpp90
1 files changed, 48 insertions, 42 deletions
diff --git a/src/osd/modules/render/d3d/d3dhlsl.cpp b/src/osd/modules/render/d3d/d3dhlsl.cpp
index cd8326b183d..c470caee360 100644
--- a/src/osd/modules/render/d3d/d3dhlsl.cpp
+++ b/src/osd/modules/render/d3d/d3dhlsl.cpp
@@ -72,14 +72,13 @@ static direct3dx9_loadeffect_ptr g_load_effect = NULL;
// shader manager constructor
//============================================================
-shaders::shaders():
+shaders::shaders() :
d3dintf(NULL), machine(NULL), d3d(NULL), num_screens(0), curr_screen(0), curr_frame(0), write_ini(false), read_ini(false), hlsl_prescale_x(0), hlsl_prescale_y(0), bloom_count(0),
vecbuf_type(), vecbuf_index(0), vecbuf_count(0), avi_output_file(NULL), avi_frame(0), avi_copy_surface(NULL), avi_copy_texture(NULL), avi_final_target(NULL), avi_final_texture(NULL),
black_surface(NULL), black_texture(NULL), render_snap(false), snap_rendered(false), snap_copy_target(NULL), snap_copy_texture(NULL), snap_target(NULL), snap_texture(NULL),
snap_width(0), snap_height(0), lines_pending(false), backbuffer(NULL), curr_effect(NULL), default_effect(NULL), prescale_effect(NULL), post_effect(NULL), distortion_effect(NULL),
focus_effect(NULL), phosphor_effect(NULL), deconverge_effect(NULL), color_effect(NULL), yiq_encode_effect(NULL), yiq_decode_effect(NULL), bloom_effect(NULL),
downsample_effect(NULL), vector_effect(NULL), fsfx_vertices(NULL), curr_texture(NULL), curr_render_target(NULL), curr_poly(NULL)
-
{
master_enable = false;
vector_enable = true;
@@ -102,8 +101,10 @@ shaders::shaders():
shaders::~shaders()
{
- last_options = *options;
-
+ if (options != NULL)
+ {
+ last_options = *options;
+ }
options = NULL;
cache_target *currcache = cachehead;
@@ -653,6 +654,11 @@ void shaders::set_texture(texture_info *texture)
void shaders::init(base *d3dintf, running_machine *machine, d3d::renderer *renderer)
{
+ if (&machine->system() == &GAME_NAME(___empty))
+ {
+ return;
+ }
+
if (!d3dintf->post_fx_available)
{
return;
@@ -2696,17 +2702,17 @@ static INT32 slider_bloom_lvl10_scale(running_machine &machine, void *arg, std::
return slider_set(&(((hlsl_options*)arg)->bloom_level10_weight), 0.01f, "%1.2f", str, newval);
}
-hlsl_options shaders::last_options;
+hlsl_options shaders::last_options = { false };
shaders::slider_desc shaders::s_sliders[] =
{
- { "Vector Length Attenuation", 0, 80, 100, 1, 2, slider_vector_attenuation },
+ { "Vector Length Attenuation", 0, 50, 100, 1, 2, slider_vector_attenuation },
{ "Vector Attenuation Length Limit", 1, 500, 1000, 1, 2, slider_vector_length_max },
{ "Shadow Mask Darkness", 0, 0, 100, 1, 7, slider_shadow_mask_alpha },
- { "Shadow Mask X Count", 1, 6, 1024, 1, 7, slider_shadow_mask_x_count },
- { "Shadow Mask Y Count", 1, 6, 1024, 1, 7, slider_shadow_mask_y_count },
- { "Shadow Mask Pixel Count X", 1, 6, 64, 1, 7, slider_shadow_mask_usize },
- { "Shadow Mask Pixel Count Y", 1, 6, 64, 1, 7, slider_shadow_mask_vsize },
+ { "Shadow Mask X Count", 1, 1, 1024, 1, 7, slider_shadow_mask_x_count },
+ { "Shadow Mask Y Count", 1, 1, 1024, 1, 7, slider_shadow_mask_y_count },
+ { "Shadow Mask Pixel Count X", 1, 1, 64, 1, 7, slider_shadow_mask_usize },
+ { "Shadow Mask Pixel Count Y", 1, 1, 64, 1, 7, slider_shadow_mask_vsize },
{ "Shadow Mask Offset X", -100, 0, 100, 1, 7, slider_shadow_mask_uoffset },
{ "Shadow Mask Offset Y", -100, 0, 100, 1, 7, slider_shadow_mask_voffset },
{ "Screen Curvature", 0, 0, 100, 1, 7, slider_curvature },
@@ -2714,7 +2720,7 @@ shaders::slider_desc shaders::s_sliders[] =
{ "Screen Smooth Border", 0, 0, 100, 1, 7, slider_smooth_border },
{ "Screen Reflection", 0, 0, 100, 1, 7, slider_reflection },
{ "Image Vignetting", 0, 0, 100, 1, 7, slider_vignetting },
- { "Scanline Darkness", 0, 100, 100, 1, 1, slider_scanline_alpha },
+ { "Scanline Darkness", 0, 0, 100, 1, 1, slider_scanline_alpha },
{ "Scanline Screen Height", 1, 20, 80, 1, 1, slider_scanline_scale },
{ "Scanline Indiv. Height", 1, 20, 80, 1, 1, slider_scanline_height },
{ "Scanline Brightness", 0, 20, 40, 1, 1, slider_scanline_bright_scale },
@@ -2722,12 +2728,12 @@ shaders::slider_desc shaders::s_sliders[] =
{ "Scanline Jitter", 0, 0, 40, 1, 1, slider_scanline_offset },
{ "Defocus X", 0, 0, 64, 1, 3, slider_defocus_x },
{ "Defocus Y", 0, 0, 64, 1, 3, slider_defocus_y },
- { "Red Position Offset X", -1500, 3, 1500, 1, 3, slider_red_converge_x },
+ { "Red Position Offset X", -1500, 0, 1500, 1, 3, slider_red_converge_x },
{ "Red Position Offset Y", -1500, 0, 1500, 1, 3, slider_red_converge_y },
{ "Green Position Offset X", -1500, 0, 1500, 1, 3, slider_green_converge_x },
- { "Green Position Offset Y", -1500, 3, 1500, 1, 3, slider_green_converge_y },
- { "Blue Position Offset X", -1500, 3, 1500, 1, 3, slider_blue_converge_x },
- { "Blue Position Offset Y", -1500, 3, 1500, 1, 3, slider_blue_converge_y },
+ { "Green Position Offset Y", -1500, 0, 1500, 1, 3, slider_green_converge_y },
+ { "Blue Position Offset X", -1500, 0, 1500, 1, 3, slider_blue_converge_x },
+ { "Blue Position Offset Y", -1500, 0, 1500, 1, 3, slider_blue_converge_y },
{ "Red Convergence X", -1500, 0, 1500, 1, 3, slider_red_radial_converge_x },
{ "Red Convergence Y", -1500, 0, 1500, 1, 3, slider_red_radial_converge_y },
{ "Green Convergence X", -1500, 0, 1500, 1, 3, slider_green_radial_converge_x },
@@ -2743,37 +2749,37 @@ shaders::slider_desc shaders::s_sliders[] =
{ "Blue Output from Red Input", -400, 0, 400, 5, 7, slider_blue_from_r },
{ "Blue Output from Green Input", -400, 0, 400, 5, 7, slider_blue_from_g },
{ "Blue Output from Blue Input", -400, 0, 400, 5, 7, slider_blue_from_b },
- { "Saturation", 0, 140, 400, 1, 7, slider_saturation },
+ { "Saturation", 0, 100, 400, 1, 7, slider_saturation },
{ "Red DC Offset", -100, 0, 100, 1, 7, slider_red_offset },
{ "Green DC Offset", -100, 0, 100, 1, 7, slider_green_offset },
{ "Blue DC Offset", -100, 0, 100, 1, 7, slider_blue_offset },
- { "Red Scale", -200, 95, 200, 1, 7, slider_red_scale },
- { "Green Scale", -200, 95, 200, 1, 7, slider_green_scale },
- { "Blue Scale", -200, 95, 200, 1, 7, slider_blue_scale },
- { "Red Gamma", -80, 16, 80, 1, 7, slider_red_power },
- { "Green Gamma", -80, 16, 80, 1, 7, slider_green_power },
- { "Blue Gamma", -80, 16, 80, 1, 7, slider_blue_power },
- { "Red Floor", 0, 5, 100, 1, 7, slider_red_floor },
- { "Green Floor", 0, 5, 100, 1, 7, slider_green_floor },
- { "Blue Floor", 0, 5, 100, 1, 7, slider_blue_floor },
- { "Red Phosphor Life", 0, 40, 100, 1, 7, slider_red_phosphor_life },
- { "Green Phosphor Life", 0, 40, 100, 1, 7, slider_green_phosphor_life },
- { "Blue Phosphor Life", 0, 40, 100, 1, 7, slider_blue_phosphor_life },
- { "Bloom Scale", 0, 250, 2000, 5, 7, slider_bloom_scale },
- { "Bloom Red Overdrive", 0, 250, 2000, 5, 7, slider_bloom_red_overdrive },
- { "Bloom Green Overdrive", 0, 250, 2000, 5, 7, slider_bloom_green_overdrive },
- { "Bloom Blue Overdrive", 0, 250, 2000, 5, 7, slider_bloom_blue_overdrive },
+ { "Red Scale", -200, 100, 200, 1, 7, slider_red_scale },
+ { "Green Scale", -200, 100, 200, 1, 7, slider_green_scale },
+ { "Blue Scale", -200, 100, 200, 1, 7, slider_blue_scale },
+ { "Red Gamma", -80, 0, 80, 1, 7, slider_red_power },
+ { "Green Gamma", -80, 0, 80, 1, 7, slider_green_power },
+ { "Blue Gamma", -80, 0, 80, 1, 7, slider_blue_power },
+ { "Red Floor", 0, 0, 100, 1, 7, slider_red_floor },
+ { "Green Floor", 0, 0, 100, 1, 7, slider_green_floor },
+ { "Blue Floor", 0, 0, 100, 1, 7, slider_blue_floor },
+ { "Red Phosphor Life", 0, 0, 100, 1, 7, slider_red_phosphor_life },
+ { "Green Phosphor Life", 0, 0, 100, 1, 7, slider_green_phosphor_life },
+ { "Blue Phosphor Life", 0, 0, 100, 1, 7, slider_blue_phosphor_life },
+ { "Bloom Scale", 0, 0, 2000, 5, 7, slider_bloom_scale },
+ { "Bloom Red Overdrive", 0, 0, 2000, 5, 7, slider_bloom_red_overdrive },
+ { "Bloom Green Overdrive", 0, 0, 2000, 5, 7, slider_bloom_green_overdrive },
+ { "Bloom Blue Overdrive", 0, 0, 2000, 5, 7, slider_bloom_blue_overdrive },
{ "Bloom Level 0 Scale", 0, 100, 100, 1, 7, slider_bloom_lvl0_scale },
- { "Bloom Level 1 Scale", 0, 21, 100, 1, 7, slider_bloom_lvl1_scale },
- { "Bloom Level 2 Scale", 0, 19, 100, 1, 7, slider_bloom_lvl2_scale },
- { "Bloom Level 3 Scale", 0, 17, 100, 1, 7, slider_bloom_lvl3_scale },
- { "Bloom Level 4 Scale", 0, 15, 100, 1, 7, slider_bloom_lvl4_scale },
- { "Bloom Level 5 Scale", 0, 14, 100, 1, 7, slider_bloom_lvl5_scale },
- { "Bloom Level 6 Scale", 0, 13, 100, 1, 7, slider_bloom_lvl6_scale },
- { "Bloom Level 7 Scale", 0, 12, 100, 1, 7, slider_bloom_lvl7_scale },
- { "Bloom Level 8 Scale", 0, 11, 100, 1, 7, slider_bloom_lvl8_scale },
- { "Bloom Level 9 Scale", 0, 10, 100, 1, 7, slider_bloom_lvl9_scale },
- { "Bloom Level 10 Scale", 0, 9, 100, 1, 7, slider_bloom_lvl10_scale },
+ { "Bloom Level 1 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl1_scale },
+ { "Bloom Level 2 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl2_scale },
+ { "Bloom Level 3 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl3_scale },
+ { "Bloom Level 4 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl4_scale },
+ { "Bloom Level 5 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl5_scale },
+ { "Bloom Level 6 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl6_scale },
+ { "Bloom Level 7 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl7_scale },
+ { "Bloom Level 8 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl8_scale },
+ { "Bloom Level 9 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl9_scale },
+ { "Bloom Level 10 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl10_scale },
{ NULL, 0, 0, 0, 0, 0, NULL },
};