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.cpp370
1 files changed, 225 insertions, 145 deletions
diff --git a/src/osd/modules/render/d3d/d3dhlsl.cpp b/src/osd/modules/render/d3d/d3dhlsl.cpp
index 3ffcee44707..d862fdcb6a8 100644
--- a/src/osd/modules/render/d3d/d3dhlsl.cpp
+++ b/src/osd/modules/render/d3d/d3dhlsl.cpp
@@ -14,16 +14,6 @@
// Windows NT shipped with DirectX 3.0a
// Windows 95 shipped with DirectX 2
-// standard windows headers
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <tchar.h>
-#include <mmsystem.h>
-#include <d3d9.h>
-#include <d3dx9.h>
-#include <math.h>
-#undef interface
-
// MAME headers
#include "emu.h"
#include "render.h"
@@ -35,12 +25,12 @@
#include "screen.h"
// MAMEOS headers
-#include "d3dintf.h"
#include "winmain.h"
#include "window.h"
-#include "d3dcomm.h"
#include "modules/render/drawd3d.h"
+#include "d3dcomm.h"
#include "strconv.h"
+#include "d3dhlsl.h"
//============================================================
@@ -48,10 +38,8 @@
//============================================================
static slider_state *g_slider_list;
-static file_error open_next(d3d::renderer *d3d, emu_file &file, const char *templ, const char *extension, int idx);
+static file_error open_next(renderer_d3d9 *d3d, emu_file &file, const char *templ, const char *extension, int idx);
-namespace d3d
-{
//============================================================
// PROTOTYPES
//============================================================
@@ -105,7 +93,7 @@ shaders::~shaders()
currcache = cachehead;
}
- render_target *currtarget = targethead;
+ d3d_render_target *currtarget = targethead;
while(targethead != NULL)
{
targethead = currtarget->next;
@@ -562,14 +550,14 @@ void shaders::remove_render_target(texture_info *texture)
void shaders::remove_render_target(int width, int height, UINT32 screen_index, UINT32 page_index)
{
- render_target *target = find_render_target(width, height, screen_index, page_index);
+ d3d_render_target *target = find_render_target(width, height, screen_index, page_index);
if (target != NULL)
{
remove_render_target(target);
}
}
-void shaders::remove_render_target(render_target *rt)
+void shaders::remove_render_target(d3d_render_target *rt)
{
if (rt != NULL)
{
@@ -642,7 +630,7 @@ void shaders::set_texture(texture_info *texture)
// shaders::init
//============================================================
-void shaders::init(base *d3dintf, running_machine *machine, d3d::renderer *renderer)
+void shaders::init(d3d_base *d3dintf, running_machine *machine, renderer_d3d9 *renderer)
{
if (!d3dintf->post_fx_available)
{
@@ -1161,13 +1149,13 @@ void shaders::init_effect_info(poly_info *poly)
// shaders::find_render_target
//============================================================
-render_target* shaders::find_render_target(texture_info *info)
+d3d_render_target* shaders::find_render_target(texture_info *info)
{
UINT32 screen_index_data = (UINT32)info->get_texinfo().osddata;
UINT32 screen_index = screen_index_data >> 1;
UINT32 page_index = screen_index_data & 1;
- render_target *curr = targethead;
+ d3d_render_target *curr = targethead;
while (curr != NULL && (
curr->screen_index != screen_index ||
curr->page_index != page_index ||
@@ -1185,9 +1173,9 @@ render_target* shaders::find_render_target(texture_info *info)
// shaders::find_render_target
//============================================================
-render_target* shaders::find_render_target(int width, int height, UINT32 screen_index, UINT32 page_index)
+d3d_render_target* shaders::find_render_target(int width, int height, UINT32 screen_index, UINT32 page_index)
{
- render_target *curr = targethead;
+ d3d_render_target *curr = targethead;
while (curr != NULL && (
curr->width != width ||
curr->height != height ||
@@ -1219,7 +1207,7 @@ cache_target* shaders::find_cache_target(UINT32 screen_index, int width, int hei
return curr;
}
-int shaders::ntsc_pass(render_target *rt, int source_index, poly_info *poly, int vertnum)
+int shaders::ntsc_pass(d3d_render_target *rt, int source_index, poly_info *poly, int vertnum)
{
int next_index = source_index;
@@ -1286,7 +1274,7 @@ rgb_t shaders::apply_color_convolution(rgb_t color)
MAX(0, MIN(255, static_cast<int>(b * 255.0f))));
}
-int shaders::color_convolution_pass(render_target *rt, int source_index, poly_info *poly, int vertnum)
+int shaders::color_convolution_pass(d3d_render_target *rt, int source_index, poly_info *poly, int vertnum)
{
int next_index = source_index;
@@ -1301,7 +1289,7 @@ int shaders::color_convolution_pass(render_target *rt, int source_index, poly_in
return next_index;
}
-int shaders::prescale_pass(render_target *rt, int source_index, poly_info *poly, int vertnum)
+int shaders::prescale_pass(d3d_render_target *rt, int source_index, poly_info *poly, int vertnum)
{
int next_index = source_index;
@@ -1316,7 +1304,7 @@ int shaders::prescale_pass(render_target *rt, int source_index, poly_info *poly,
return next_index;
}
-int shaders::deconverge_pass(render_target *rt, int source_index, poly_info *poly, int vertnum)
+int shaders::deconverge_pass(d3d_render_target *rt, int source_index, poly_info *poly, int vertnum)
{
int next_index = source_index;
@@ -1340,7 +1328,7 @@ int shaders::deconverge_pass(render_target *rt, int source_index, poly_info *pol
return next_index;
}
-int shaders::defocus_pass(render_target *rt, int source_index, poly_info *poly, int vertnum)
+int shaders::defocus_pass(d3d_render_target *rt, int source_index, poly_info *poly, int vertnum)
{
int next_index = source_index;
@@ -1361,7 +1349,7 @@ int shaders::defocus_pass(render_target *rt, int source_index, poly_info *poly,
return next_index;
}
-int shaders::phosphor_pass(render_target *rt, cache_target *ct, int source_index, poly_info *poly, int vertnum)
+int shaders::phosphor_pass(d3d_render_target *rt, cache_target *ct, int source_index, poly_info *poly, int vertnum)
{
int next_index = source_index;
@@ -1394,7 +1382,7 @@ int shaders::phosphor_pass(render_target *rt, cache_target *ct, int source_index
return next_index;
}
-int shaders::post_pass(render_target *rt, int source_index, poly_info *poly, int vertnum, bool prepare_bloom)
+int shaders::post_pass(d3d_render_target *rt, int source_index, poly_info *poly, int vertnum, bool prepare_bloom)
{
int next_index = source_index;
@@ -1443,7 +1431,7 @@ int shaders::post_pass(render_target *rt, int source_index, poly_info *poly, int
return next_index;
}
-int shaders::downsample_pass(render_target *rt, int source_index, poly_info *poly, int vertnum)
+int shaders::downsample_pass(d3d_render_target *rt, int source_index, poly_info *poly, int vertnum)
{
int next_index = source_index;
@@ -1485,7 +1473,7 @@ int shaders::downsample_pass(render_target *rt, int source_index, poly_info *pol
return next_index;
}
-int shaders::bloom_pass(render_target *rt, int source_index, poly_info *poly, int vertnum)
+int shaders::bloom_pass(d3d_render_target *rt, int source_index, poly_info *poly, int vertnum)
{
int next_index = source_index;
@@ -1558,7 +1546,7 @@ int shaders::bloom_pass(render_target *rt, int source_index, poly_info *poly, in
return next_index;
}
-int shaders::distortion_pass(render_target *rt, int source_index, poly_info *poly, int vertnum)
+int shaders::distortion_pass(d3d_render_target *rt, int source_index, poly_info *poly, int vertnum)
{
int next_index = source_index;
@@ -1606,7 +1594,7 @@ int shaders::distortion_pass(render_target *rt, int source_index, poly_info *pol
return next_index;
}
-int shaders::vector_pass(render_target *rt, int source_index, poly_info *poly, int vertnum)
+int shaders::vector_pass(d3d_render_target *rt, int source_index, poly_info *poly, int vertnum)
{
int next_index = source_index;
@@ -1624,7 +1612,7 @@ int shaders::vector_pass(render_target *rt, int source_index, poly_info *poly, i
return next_index;
}
-int shaders::vector_buffer_pass(render_target *rt, int source_index, poly_info *poly, int vertnum)
+int shaders::vector_buffer_pass(d3d_render_target *rt, int source_index, poly_info *poly, int vertnum)
{
int next_index = source_index;
@@ -1641,7 +1629,7 @@ int shaders::vector_buffer_pass(render_target *rt, int source_index, poly_info *
return next_index;
}
-int shaders::screen_pass(render_target *rt, int source_index, poly_info *poly, int vertnum)
+int shaders::screen_pass(d3d_render_target *rt, int source_index, poly_info *poly, int vertnum)
{
int next_index = source_index;
@@ -1699,7 +1687,7 @@ void shaders::render_quad(poly_info *poly, int vertnum)
curr_render_target = find_render_target(curr_texture);
- render_target *rt = curr_render_target;
+ d3d_render_target *rt = curr_render_target;
if (rt == NULL)
{
osd_printf_verbose("Direct3D: No raster render target\n");
@@ -1746,7 +1734,7 @@ void shaders::render_quad(poly_info *poly, int vertnum)
{
curr_render_target = find_render_target(d3d->get_width(), d3d->get_height(), 0, 0);
- render_target *rt = curr_render_target;
+ d3d_render_target *rt = curr_render_target;
if (rt == NULL)
{
osd_printf_verbose("Direct3D: No vector render target\n");
@@ -1769,7 +1757,7 @@ void shaders::render_quad(poly_info *poly, int vertnum)
{
curr_render_target = find_render_target(d3d->get_width(), d3d->get_height(), 0, 0);
- render_target *rt = curr_render_target;
+ d3d_render_target *rt = curr_render_target;
if (rt == NULL)
{
osd_printf_verbose("Direct3D: No vector buffer render target\n");
@@ -1838,7 +1826,7 @@ void shaders::end_draw()
//============================================================
// shaders::add_cache_target - register a cache target
//============================================================
-bool shaders::add_cache_target(renderer* d3d, texture_info* info, int width, int height, int screen_index)
+bool shaders::add_cache_target(renderer_d3d9* d3d, texture_info* info, int width, int height, int screen_index)
{
cache_target* target = (cache_target*)global_alloc_clear<cache_target>();
@@ -1873,7 +1861,7 @@ bool shaders::add_cache_target(renderer* d3d, texture_info* info, int width, int
return true;
}
-render_target* shaders::get_vector_target()
+d3d_render_target* shaders::get_vector_target()
{
if (!vector_enable)
{
@@ -1899,13 +1887,13 @@ void shaders::create_vector_target(render_primitive *prim)
// shaders::add_render_target - register a render target
//============================================================
-bool shaders::add_render_target(renderer* d3d, texture_info* info, int width, int height, int target_width, int target_height)
+bool shaders::add_render_target(renderer_d3d9* d3d, texture_info* info, int width, int height, int target_width, int target_height)
{
UINT32 screen_index = 0;
UINT32 page_index = 0;
if (info != NULL)
{
- render_target *existing_target = find_render_target(info);
+ d3d_render_target *existing_target = find_render_target(info);
if (existing_target != NULL)
{
remove_render_target(existing_target);
@@ -1917,14 +1905,14 @@ bool shaders::add_render_target(renderer* d3d, texture_info* info, int width, in
}
else
{
- render_target *existing_target = find_render_target(d3d->get_width(), d3d->get_height(), 0, 0);
+ d3d_render_target *existing_target = find_render_target(d3d->get_width(), d3d->get_height(), 0, 0);
if (existing_target != NULL)
{
remove_render_target(existing_target);
}
}
- render_target* target = (render_target*)global_alloc_clear<render_target>();
+ d3d_render_target* target = (d3d_render_target*)global_alloc_clear<d3d_render_target>();
if (!target->init(d3d, d3dintf, width, height, target_width, target_height))
{
@@ -2037,7 +2025,7 @@ void shaders::delete_resources(bool reset)
currcache = cachehead;
}
- render_target *currtarget = targethead;
+ d3d_render_target *currtarget = targethead;
while(targethead != NULL)
{
targethead = currtarget->next;
@@ -2186,7 +2174,7 @@ static void get_vector(const char *data, int count, float *out, bool report_erro
// be done in a more ideal way.
//============================================================
-static slider_state *slider_alloc(running_machine &machine, const char *title, INT32 minval, INT32 defval, INT32 maxval, INT32 incval, slider_update update, void *arg)
+static slider_state *slider_alloc(running_machine &machine, int id, const char *title, INT32 minval, INT32 defval, INT32 maxval, INT32 incval, slider_update update, void *arg)
{
int size = sizeof(slider_state) + strlen(title);
slider_state *state = (slider_state *)auto_alloc_array_clear(machine, UINT8, size);
@@ -2197,6 +2185,8 @@ static slider_state *slider_alloc(running_machine &machine, const char *title, I
state->incval = incval;
state->update = update;
state->arg = arg;
+ state->hidden = false;
+ state->id = id;
strcpy(state->description, title);
return state;
@@ -2824,99 +2814,191 @@ static INT32 slider_ntsc_scan_time(running_machine &machine, void *arg, std::str
hlsl_options shaders::last_options = { false };
+enum slider_option
+{
+ SLIDER_VECTOR_ATTENUATION = 0,
+ SLIDER_VECTOR_LENGTH_MAX,
+ SLIDER_SHADOW_MASK_TILE_MODE,
+ SLIDER_SHADOW_MASK_ALPHA,
+ SLIDER_SHADOW_MASK_X_COUNT,
+ SLIDER_SHADOW_MASK_Y_COUNT,
+ SLIDER_SHADOW_MASK_U_SIZE,
+ SLIDER_SHADOW_MASK_V_SIZE,
+ SLIDER_SHADOW_MASK_U_OFFSET,
+ SLIDER_SHADOW_MASK_V_OFFSET,
+ SLIDER_CURVATURE,
+ SLIDER_ROUND_CORNER,
+ SLIDER_SMOOTH_BORDER,
+ SLIDER_REFLECTION,
+ SLIDER_VIGNETTING,
+ SLIDER_SCANLINE_ALPHA,
+ SLIDER_SCANLINE_SCALE,
+ SLIDER_SCANLINE_HEIGHT,
+ SLIDER_SCANLINE_BRIGHT_SCALE,
+ SLIDER_SCANLINE_BRIGHT_OFFSET,
+ SLIDER_SCANLINE_JITTER,
+ SLIDER_HUM_BAR_ALPHA,
+ SLIDER_DEFOCUS_X,
+ SLIDER_DEFOCUS_Y,
+ SLIDER_RED_CONVERGE_X,
+ SLIDER_RED_CONVERGE_Y,
+ SLIDER_GREEN_CONVERGE_X,
+ SLIDER_GREEN_CONVERGE_Y,
+ SLIDER_BLUE_CONVERGE_X,
+ SLIDER_BLUE_CONVERGE_Y,
+ SLIDER_RED_RADIAL_CONVERGE_X,
+ SLIDER_RED_RADIAL_CONVERGE_Y,
+ SLIDER_GREEN_RADIAL_CONVERGE_X,
+ SLIDER_GREEN_RADIAL_CONVERGE_Y,
+ SLIDER_BLUE_RADIAL_CONVERGE_X,
+ SLIDER_BLUE_RADIAL_CONVERGE_Y,
+ SLIDER_RED_FROM_R,
+ SLIDER_RED_FROM_G,
+ SLIDER_RED_FROM_B,
+ SLIDER_GREEN_FROM_R,
+ SLIDER_GREEN_FROM_G,
+ SLIDER_GREEN_FROM_B,
+ SLIDER_BLUE_FROM_R,
+ SLIDER_BLUE_FROM_G,
+ SLIDER_BLUE_FROM_B,
+ SLIDER_SATURATION,
+ SLIDER_RED_OFFSET,
+ SLIDER_GREEN_OFFSET,
+ SLIDER_BLUE_OFFSET,
+ SLIDER_RED_SCALE,
+ SLIDER_GREEN_SCALE,
+ SLIDER_BLUE_SCALE,
+ SLIDER_RED_POWER,
+ SLIDER_GREEN_POWER,
+ SLIDER_BLUE_POWER,
+ SLIDER_RED_FLOOR,
+ SLIDER_GREEN_FLOOR,
+ SLIDER_BLUE_FLOOR,
+ SLIDER_RED_PHOSPHOR,
+ SLIDER_GREEN_PHOSPHOR,
+ SLIDER_BLUE_PHOSPHOR,
+ SLIDER_BLOOM_BLEND_MODE,
+ SLIDER_BLOOM_SCALE,
+ SLIDER_BLOOM_RED_OVERDRIVE,
+ SLIDER_BLOOM_GREEN_OVERDRIVE,
+ SLIDER_BLOOM_BLUE_OVERDRIVE,
+ SLIDER_BLOOM_LVL0_SCALE,
+ SLIDER_BLOOM_LVL1_SCALE,
+ SLIDER_BLOOM_LVL2_SCALE,
+ SLIDER_BLOOM_LVL3_SCALE,
+ SLIDER_BLOOM_LVL4_SCALE,
+ SLIDER_BLOOM_LVL5_SCALE,
+ SLIDER_BLOOM_LVL6_SCALE,
+ SLIDER_BLOOM_LVL7_SCALE,
+ SLIDER_BLOOM_LVL8_SCALE,
+ SLIDER_BLOOM_LVL9_SCALE,
+ SLIDER_BLOOM_LVL10_SCALE,
+ SLIDER_NTSC_ENABLE,
+ SLIDER_NTSC_JITTER,
+ SLIDER_NTSC_A_VALUE,
+ SLIDER_NTSC_B_VALUE,
+ SLIDER_NTSC_P_VALUE,
+ SLIDER_NTSC_O_VALUE,
+ SLIDER_NTSC_CC_VALUE,
+ SLIDER_NTSC_N_VALUE,
+ SLIDER_NTSC_Y_VALUE,
+ SLIDER_NTSC_I_VALUE,
+ SLIDER_NTSC_Q_VALUE,
+ SLIDER_NTSC_SCAN_TIME
+};
+
shaders::slider_desc shaders::s_sliders[] =
{
- { "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 Tile Mode", 0, 0, 1, 1, 7, slider_shadow_mask_tile_mode },
- { "Shadow Mask Darkness", 0, 0, 100, 1, 7, slider_shadow_mask_alpha },
- { "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 },
- { "Screen Round Corner", 0, 0, 100, 1, 7, slider_round_corner },
- { "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, 0, 100, 1, 5, slider_scanline_alpha },
- { "Scanline Screen Scale", 0, 100, 400, 5, 5, slider_scanline_scale },
- { "Scanline Heigth", 0, 100, 400, 5, 5, slider_scanline_height },
- { "Scanline Brightness", 0, 100, 200, 1, 5, slider_scanline_bright_scale },
- { "Scanline Brightness Overdrive", 0, 0, 100, 1, 5, slider_scanline_bright_offset },
- { "Scanline Jitter", 0, 0, 100, 1, 5, slider_scanline_jitter },
- { "Hum Bar Darkness", 0, 0, 100, 1, 5, slider_hum_bar_alpha },
- { "Defocus X", 0, 0, 100, 1, 7, slider_defocus_x },
- { "Defocus Y", 0, 0, 100, 1, 7, slider_defocus_y },
- { "Red Position Offset X", -100, 0, 100, 1, 7, slider_red_converge_x },
- { "Red Position Offset Y", -100, 0, 100, 1, 7, slider_red_converge_y },
- { "Green Position Offset X", -100, 0, 100, 1, 7, slider_green_converge_x },
- { "Green Position Offset Y", -100, 0, 100, 1, 7, slider_green_converge_y },
- { "Blue Position Offset X", -100, 0, 100, 1, 7, slider_blue_converge_x },
- { "Blue Position Offset Y", -100, 0, 100, 1, 7, slider_blue_converge_y },
- { "Red Convergence X", -100, 0, 100, 1, 7, slider_red_radial_converge_x },
- { "Red Convergence Y", -100, 0, 100, 1, 7, slider_red_radial_converge_y },
- { "Green Convergence X", -100, 0, 100, 1, 7, slider_green_radial_converge_x },
- { "Green Convergence Y", -100, 0, 100, 1, 7, slider_green_radial_converge_y },
- { "Blue Convergence X", -100, 0, 100, 1, 7, slider_blue_radial_converge_x },
- { "Blue Convergence Y", -100, 0, 100, 1, 7, slider_blue_radial_converge_y },
- { "Red Output from Red Input", -400, 0, 400, 5, 7, slider_red_from_r },
- { "Red Output from Green Input", -400, 0, 400, 5, 7, slider_red_from_g },
- { "Red Output from Blue Input", -400, 0, 400, 5, 7, slider_red_from_b },
- { "Green Output from Red Input", -400, 0, 400, 5, 7, slider_green_from_r },
- { "Green Output from Green Input", -400, 0, 400, 5, 7, slider_green_from_g },
- { "Green Output from Blue Input", -400, 0, 400, 5, 7, slider_green_from_b },
- { "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, 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, 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 Blend Mode", 0, 0, 1, 1, 7, slider_bloom_blend_mode },
- { "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, 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 },
- { "NTSC processing", 0, 0, 1, 1, 5, slider_ntsc_enable },
- { "Signal Jitter", 0, 0, 100, 1, 5, slider_ntsc_jitter },
- { "A Value", -100, 50, 100, 1, 5, slider_ntsc_a_value },
- { "B Value", -100, 50, 100, 1, 5, slider_ntsc_b_value },
- { "Incoming Pixel Clock Scaling", -300, 100, 300, 1, 5, slider_ntsc_p_value },
- { "Outgoing Color Carrier Phase", -300, 0, 300, 1, 5, slider_ntsc_o_value },
- { "Color Carrier Frequency", 0, 35795, 60000, 5, 5, slider_ntsc_cc_value },
- { "Y Notch", 0, 100, 600, 5, 5, slider_ntsc_n_value },
- { "Y Frequency", 0, 600, 600, 5, 5, slider_ntsc_y_value },
- { "I Frequency", 0, 120, 600, 5, 5, slider_ntsc_i_value },
- { "Q Frequency", 0, 60, 600, 5, 5, slider_ntsc_q_value },
- { "Scanline Duration", 0, 5260, 10000, 1, 5, slider_ntsc_scan_time },
- // { "Phase Count", 1, 2, 3, 1, 5, slider_ntsc_phase_count },
- { NULL, 0, 0, 0, 0, 0, NULL },
+ { "Vector Length Attenuation", 0, 50, 100, 1, SLIDER_SCREEN_TYPE_VECTOR, slider_vector_attenuation, SLIDER_VECTOR_ATTENUATION },
+ { "Vector Attenuation Length Limit", 1, 500, 1000, 1, SLIDER_SCREEN_TYPE_VECTOR, slider_vector_length_max, SLIDER_VECTOR_LENGTH_MAX },
+ { "Shadow Mask Tile Mode", 0, 0, 1, 1, SLIDER_SCREEN_TYPE_ANY, slider_shadow_mask_tile_mode, SLIDER_SHADOW_MASK_TILE_MODE },
+ { "Shadow Mask Darkness", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_shadow_mask_alpha, SLIDER_SHADOW_MASK_ALPHA },
+ { "Shadow Mask X Count", 1, 1, 1024, 1, SLIDER_SCREEN_TYPE_ANY, slider_shadow_mask_x_count, SLIDER_SHADOW_MASK_X_COUNT },
+ { "Shadow Mask Y Count", 1, 1, 1024, 1, SLIDER_SCREEN_TYPE_ANY, slider_shadow_mask_y_count, SLIDER_SHADOW_MASK_Y_COUNT },
+ { "Shadow Mask Pixel Count X", 1, 1, 64, 1, SLIDER_SCREEN_TYPE_ANY, slider_shadow_mask_usize, SLIDER_SHADOW_MASK_U_SIZE },
+ { "Shadow Mask Pixel Count Y", 1, 1, 64, 1, SLIDER_SCREEN_TYPE_ANY, slider_shadow_mask_vsize, SLIDER_SHADOW_MASK_V_SIZE },
+ { "Shadow Mask Offset X", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_shadow_mask_uoffset, SLIDER_SHADOW_MASK_U_OFFSET },
+ { "Shadow Mask Offset Y", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_shadow_mask_voffset, SLIDER_SHADOW_MASK_V_OFFSET },
+ { "Screen Curvature", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_curvature, SLIDER_CURVATURE },
+ { "Screen Round Corner", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_round_corner, SLIDER_ROUND_CORNER },
+ { "Screen Smooth Border", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_smooth_border, SLIDER_SMOOTH_BORDER },
+ { "Screen Reflection", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_reflection, SLIDER_REFLECTION },
+ { "Image Vignetting", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_vignetting, SLIDER_VIGNETTING },
+ { "Scanline Darkness", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_scanline_alpha, SLIDER_SCANLINE_ALPHA },
+ { "Scanline Screen Scale", 0, 100, 400, 1, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_scanline_scale, SLIDER_SCANLINE_SCALE },
+ { "Scanline Height", 0, 100, 400, 1, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_scanline_height, SLIDER_SCANLINE_HEIGHT },
+ { "Scanline Brightness", 0, 100, 400, 1, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_scanline_bright_scale, SLIDER_SCANLINE_BRIGHT_SCALE },
+ { "Scanline Brightness Overdrive", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_scanline_bright_offset, SLIDER_SCANLINE_BRIGHT_OFFSET },
+ { "Scanline Jitter", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_scanline_jitter, SLIDER_SCANLINE_JITTER },
+ { "Hum Bar Darkness", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_hum_bar_alpha, SLIDER_HUM_BAR_ALPHA },
+ { "Defocus X", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_defocus_x, SLIDER_DEFOCUS_X },
+ { "Defocus Y", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_defocus_y, SLIDER_DEFOCUS_Y },
+ { "Red Position Offset X", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_red_converge_x, SLIDER_RED_CONVERGE_X },
+ { "Red Position Offset Y", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_red_converge_y, SLIDER_RED_CONVERGE_Y },
+ { "Green Position Offset X", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_green_converge_x, SLIDER_GREEN_CONVERGE_X },
+ { "Green Position Offset Y", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_green_converge_y, SLIDER_GREEN_CONVERGE_Y },
+ { "Blue Position Offset X", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_blue_converge_x, SLIDER_BLUE_CONVERGE_X },
+ { "Blue Position Offset Y", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_blue_converge_y, SLIDER_BLUE_CONVERGE_Y },
+ { "Red Convergence X", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_red_radial_converge_x, SLIDER_RED_RADIAL_CONVERGE_X },
+ { "Red Convergence Y", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_red_radial_converge_y, SLIDER_RED_RADIAL_CONVERGE_Y },
+ { "Green Convergence X", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_green_radial_converge_x, SLIDER_GREEN_RADIAL_CONVERGE_X },
+ { "Green Convergence Y", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_green_radial_converge_y, SLIDER_GREEN_RADIAL_CONVERGE_Y },
+ { "Blue Convergence X", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_blue_radial_converge_x, SLIDER_BLUE_RADIAL_CONVERGE_X },
+ { "Blue Convergence Y", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_blue_radial_converge_y, SLIDER_BLUE_RADIAL_CONVERGE_Y },
+ { "Red Output from Red Input", -400, 0, 400, 5, SLIDER_SCREEN_TYPE_ANY, slider_red_from_r, SLIDER_RED_FROM_R },
+ { "Red Output from Green Input", -400, 0, 400, 5, SLIDER_SCREEN_TYPE_ANY, slider_red_from_g, SLIDER_RED_FROM_G },
+ { "Red Output from Blue Input", -400, 0, 400, 5, SLIDER_SCREEN_TYPE_ANY, slider_red_from_b, SLIDER_RED_FROM_B },
+ { "Green Output from Red Input", -400, 0, 400, 5, SLIDER_SCREEN_TYPE_ANY, slider_green_from_r, SLIDER_GREEN_FROM_R },
+ { "Green Output from Green Input", -400, 0, 400, 5, SLIDER_SCREEN_TYPE_ANY, slider_green_from_g, SLIDER_GREEN_FROM_G },
+ { "Green Output from Blue Input", -400, 0, 400, 5, SLIDER_SCREEN_TYPE_ANY, slider_green_from_b, SLIDER_GREEN_FROM_B },
+ { "Blue Output from Red Input", -400, 0, 400, 5, SLIDER_SCREEN_TYPE_ANY, slider_blue_from_r, SLIDER_BLUE_FROM_R },
+ { "Blue Output from Green Input", -400, 0, 400, 5, SLIDER_SCREEN_TYPE_ANY, slider_blue_from_g, SLIDER_BLUE_FROM_G },
+ { "Blue Output from Blue Input", -400, 0, 400, 5, SLIDER_SCREEN_TYPE_ANY, slider_blue_from_b, SLIDER_BLUE_FROM_B },
+ { "Saturation", 0, 100, 400, 1, SLIDER_SCREEN_TYPE_ANY, slider_saturation, SLIDER_SATURATION },
+ { "Red DC Offset", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_red_offset, SLIDER_RED_OFFSET },
+ { "Green DC Offset", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_green_offset, SLIDER_GREEN_OFFSET },
+ { "Blue DC Offset", -100, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_blue_offset, SLIDER_BLUE_OFFSET },
+ { "Red Scale", -200, 100, 200, 1, SLIDER_SCREEN_TYPE_ANY, slider_red_scale, SLIDER_RED_SCALE },
+ { "Green Scale", -200, 100, 200, 1, SLIDER_SCREEN_TYPE_ANY, slider_green_scale, SLIDER_GREEN_SCALE },
+ { "Blue Scale", -200, 100, 200, 1, SLIDER_SCREEN_TYPE_ANY, slider_blue_scale, SLIDER_BLUE_SCALE },
+ { "Red Gamma", -80, 0, 80, 1, SLIDER_SCREEN_TYPE_ANY, slider_red_power, SLIDER_RED_POWER },
+ { "Green Gamma", -80, 0, 80, 1, SLIDER_SCREEN_TYPE_ANY, slider_green_power, SLIDER_GREEN_POWER },
+ { "Blue Gamma", -80, 0, 80, 1, SLIDER_SCREEN_TYPE_ANY, slider_blue_power, SLIDER_BLUE_POWER },
+ { "Red Floor", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_red_floor, SLIDER_RED_FLOOR },
+ { "Green Floor", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_green_floor, SLIDER_GREEN_FLOOR },
+ { "Blue Floor", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_blue_floor, SLIDER_BLUE_FLOOR },
+ { "Red Phosphor Life", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_red_phosphor_life, SLIDER_RED_PHOSPHOR },
+ { "Green Phosphor Life", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_green_phosphor_life, SLIDER_GREEN_PHOSPHOR },
+ { "Blue Phosphor Life", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_blue_phosphor_life, SLIDER_BLUE_PHOSPHOR },
+ { "Bloom Blend Mode", 0, 0, 1, 1, SLIDER_SCREEN_TYPE_ANY, slider_bloom_blend_mode, SLIDER_BLOOM_BLEND_MODE },
+ { "Bloom Scale", 0, 0, 2000, 5, SLIDER_SCREEN_TYPE_ANY, slider_bloom_scale, SLIDER_BLOOM_SCALE },
+ { "Bloom Red Overdrive", 0, 0, 2000, 5, SLIDER_SCREEN_TYPE_ANY, slider_bloom_red_overdrive, SLIDER_BLOOM_RED_OVERDRIVE },
+ { "Bloom Green Overdrive", 0, 0, 2000, 5, SLIDER_SCREEN_TYPE_ANY, slider_bloom_green_overdrive, SLIDER_BLOOM_GREEN_OVERDRIVE },
+ { "Bloom Blue Overdrive", 0, 0, 2000, 5, SLIDER_SCREEN_TYPE_ANY, slider_bloom_blue_overdrive, SLIDER_BLOOM_BLUE_OVERDRIVE },
+ { "Bloom Level 0 Scale", 0, 100, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_bloom_lvl0_scale, SLIDER_BLOOM_LVL0_SCALE },
+ { "Bloom Level 1 Scale", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_bloom_lvl1_scale, SLIDER_BLOOM_LVL1_SCALE },
+ { "Bloom Level 2 Scale", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_bloom_lvl2_scale, SLIDER_BLOOM_LVL2_SCALE },
+ { "Bloom Level 3 Scale", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_bloom_lvl3_scale, SLIDER_BLOOM_LVL3_SCALE },
+ { "Bloom Level 4 Scale", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_bloom_lvl4_scale, SLIDER_BLOOM_LVL4_SCALE },
+ { "Bloom Level 5 Scale", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_bloom_lvl5_scale, SLIDER_BLOOM_LVL5_SCALE },
+ { "Bloom Level 6 Scale", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_bloom_lvl6_scale, SLIDER_BLOOM_LVL6_SCALE },
+ { "Bloom Level 7 Scale", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_bloom_lvl7_scale, SLIDER_BLOOM_LVL7_SCALE },
+ { "Bloom Level 8 Scale", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_bloom_lvl8_scale, SLIDER_BLOOM_LVL8_SCALE },
+ { "Bloom Level 9 Scale", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_bloom_lvl9_scale, SLIDER_BLOOM_LVL9_SCALE },
+ { "Bloom Level 10 Scale", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_ANY, slider_bloom_lvl10_scale, SLIDER_BLOOM_LVL10_SCALE },
+ { "NTSC processing", 0, 0, 1, 1, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_ntsc_enable, SLIDER_NTSC_ENABLE },
+ { "Signal Jitter", 0, 0, 100, 1, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_ntsc_jitter, SLIDER_NTSC_JITTER },
+ { "A Value", -100, 50, 100, 1, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_ntsc_a_value, SLIDER_NTSC_A_VALUE },
+ { "B Value", -100, 50, 100, 1, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_ntsc_b_value, SLIDER_NTSC_B_VALUE },
+ { "Incoming Pixel Clock Scaling", -300, 100, 300, 1, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_ntsc_p_value, SLIDER_NTSC_P_VALUE },
+ { "Outgoing Color Carrier Phase", -300, 0, 300, 1, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_ntsc_o_value, SLIDER_NTSC_O_VALUE },
+ { "Color Carrier Frequency", 0, 35795, 60000, 5, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_ntsc_cc_value, SLIDER_NTSC_CC_VALUE },
+ { "Y Notch", 0, 100, 600, 5, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_ntsc_n_value, SLIDER_NTSC_N_VALUE },
+ { "Y Frequency", 0, 600, 600, 5, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_ntsc_y_value, SLIDER_NTSC_Y_VALUE },
+ { "I Frequency", 0, 120, 600, 5, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_ntsc_i_value, SLIDER_NTSC_I_VALUE },
+ { "Q Frequency", 0, 60, 600, 5, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_ntsc_q_value, SLIDER_NTSC_Q_VALUE },
+ { "Scanline Duration", 0, 5260, 10000, 1, SLIDER_SCREEN_TYPE_LCD_OR_RASTER, slider_ntsc_scan_time, SLIDER_NTSC_SCAN_TIME },
+ { NULL, 0, 0, 0, 0, 0, NULL, -1 },
};
@@ -2944,7 +3026,7 @@ slider_state *shaders::init_slider_list()
(screen_type == SCREEN_TYPE_RASTER && (slider->screen_type & SLIDER_SCREEN_TYPE_RASTER) == SLIDER_SCREEN_TYPE_RASTER) ||
(screen_type == SCREEN_TYPE_LCD && (slider->screen_type & SLIDER_SCREEN_TYPE_LCD) == SLIDER_SCREEN_TYPE_LCD))
{
- *tailptr = slider_alloc(*machine, slider->name, slider->minval, slider->defval, slider->maxval, slider->step, slider->adjustor, (void*)options);
+ *tailptr = slider_alloc(*machine, slider->id, slider->name, slider->minval, slider->defval, slider->maxval, slider->step, slider->adjustor, (void*)options);
tailptr = &(*tailptr)->next;
}
}
@@ -3008,7 +3090,7 @@ void uniform::update()
shaders *shadersys = m_shader->m_shaders;
hlsl_options *options = shadersys->options;
- renderer *d3d = shadersys->d3d;
+ renderer_d3d9 *d3d = shadersys->d3d;
switch (m_id)
{
@@ -3507,16 +3589,14 @@ ULONG effect::release()
return m_effect->Release();
}
-}
-
//============================================================
// get_slider_list
//============================================================
-void *windows_osd_interface::get_slider_list()
+slider_state *renderer_d3d9::get_slider_list()
{
- return (void*)g_slider_list;
+ return g_slider_list;
}
@@ -3527,7 +3607,7 @@ void *windows_osd_interface::get_slider_list()
// scheme
//-------------------------------------------------
-static file_error open_next(d3d::renderer *d3d, emu_file &file, const char *templ, const char *extension, int idx)
+static file_error open_next(renderer_d3d9 *d3d, emu_file &file, const char *templ, const char *extension, int idx)
{
UINT32 origflags = file.openflags();