mirror of
https://github.com/libretro/RetroArch
synced 2025-03-01 07:13:35 +00:00
Add SHADER_CTL_GET_CURRENT_SHADER
This commit is contained in:
parent
38034abce6
commit
debb5dd0ce
@ -58,18 +58,6 @@ const shader_backend_t *shader_ctx_find_driver(const char *ident)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct video_shader *video_shader_driver_get_current_shader(void)
|
|
||||||
{
|
|
||||||
void *video_driver = video_driver_get_ptr(false);
|
|
||||||
const video_poke_interface_t *video_poke = video_driver_get_poke();
|
|
||||||
if (!video_poke || !video_driver)
|
|
||||||
return NULL;
|
|
||||||
if (!video_poke->get_current_shader)
|
|
||||||
return NULL;
|
|
||||||
return video_poke->get_current_shader(video_driver);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const char *video_shader_driver_get_ident(void)
|
const char *video_shader_driver_get_ident(void)
|
||||||
{
|
{
|
||||||
if (!current_shader)
|
if (!current_shader)
|
||||||
@ -88,6 +76,20 @@ bool video_shader_driver_ctl(enum video_shader_driver_ctl_state state, void *dat
|
|||||||
{
|
{
|
||||||
switch (state)
|
switch (state)
|
||||||
{
|
{
|
||||||
|
case SHADER_CTL_GET_CURRENT_SHADER:
|
||||||
|
{
|
||||||
|
video_shader_ctx_t *shader = (video_shader_ctx_t*)data;
|
||||||
|
void *video_driver = video_driver_get_ptr(false);
|
||||||
|
const video_poke_interface_t *video_poke = video_driver_get_poke();
|
||||||
|
|
||||||
|
shader->data = NULL;
|
||||||
|
if (!video_poke || !video_driver)
|
||||||
|
return false;
|
||||||
|
if (!video_poke->get_current_shader)
|
||||||
|
return false;
|
||||||
|
shader->data = video_poke->get_current_shader(video_driver);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case SHADER_CTL_DIRECT_GET_CURRENT_SHADER:
|
case SHADER_CTL_DIRECT_GET_CURRENT_SHADER:
|
||||||
{
|
{
|
||||||
video_shader_ctx_t *shader = (video_shader_ctx_t*)data;
|
video_shader_ctx_t *shader = (video_shader_ctx_t*)data;
|
||||||
|
@ -70,6 +70,7 @@ enum video_shader_driver_ctl_state
|
|||||||
SHADER_CTL_FILTER_TYPE,
|
SHADER_CTL_FILTER_TYPE,
|
||||||
SHADER_CTL_USE,
|
SHADER_CTL_USE,
|
||||||
SHADER_CTL_WRAP_TYPE,
|
SHADER_CTL_WRAP_TYPE,
|
||||||
|
SHADER_CTL_GET_CURRENT_SHADER,
|
||||||
SHADER_CTL_DIRECT_GET_CURRENT_SHADER
|
SHADER_CTL_DIRECT_GET_CURRENT_SHADER
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -190,8 +191,6 @@ extern const shader_backend_t shader_null_backend;
|
|||||||
**/
|
**/
|
||||||
const shader_backend_t *shader_ctx_find_driver(const char *ident);
|
const shader_backend_t *shader_ctx_find_driver(const char *ident);
|
||||||
|
|
||||||
struct video_shader *video_shader_driver_get_current_shader(void);
|
|
||||||
|
|
||||||
const char *video_shader_driver_get_ident(void);
|
const char *video_shader_driver_get_ident(void);
|
||||||
|
|
||||||
unsigned video_shader_driver_get_prev_textures(void);
|
unsigned video_shader_driver_get_prev_textures(void);
|
||||||
|
@ -252,20 +252,20 @@ static void menu_action_setting_disp_set_label_shader_parameter(
|
|||||||
char *s2, size_t len2)
|
char *s2, size_t len2)
|
||||||
{
|
{
|
||||||
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_HLSL)
|
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_HLSL)
|
||||||
|
video_shader_ctx_t shader_info;
|
||||||
const struct video_shader_parameter *param = NULL;
|
const struct video_shader_parameter *param = NULL;
|
||||||
struct video_shader *shader = NULL;
|
|
||||||
#endif
|
#endif
|
||||||
*s = '\0';
|
*s = '\0';
|
||||||
*w = 19;
|
*w = 19;
|
||||||
strlcpy(s2, path, len2);
|
strlcpy(s2, path, len2);
|
||||||
|
|
||||||
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_HLSL)
|
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_HLSL)
|
||||||
shader = video_shader_driver_get_current_shader();
|
video_shader_driver_ctl(SHADER_CTL_GET_CURRENT_SHADER, &shader_info);
|
||||||
|
|
||||||
if (!shader)
|
if (!shader_info.data)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
param = &shader->parameters[type - MENU_SETTINGS_SHADER_PARAMETER_0];
|
param = &shader_info.data->parameters[type - MENU_SETTINGS_SHADER_PARAMETER_0];
|
||||||
|
|
||||||
if (!param)
|
if (!param)
|
||||||
return;
|
return;
|
||||||
|
@ -52,9 +52,13 @@ static int generic_shader_action_parameter_left(
|
|||||||
static int shader_action_parameter_left(unsigned type, const char *label,
|
static int shader_action_parameter_left(unsigned type, const char *label,
|
||||||
bool wraparound)
|
bool wraparound)
|
||||||
{
|
{
|
||||||
struct video_shader *shader = video_shader_driver_get_current_shader();
|
video_shader_ctx_t shader_info;
|
||||||
struct video_shader_parameter *param = &shader->parameters[type - MENU_SETTINGS_SHADER_PARAMETER_0];
|
struct video_shader_parameter *param = NULL;
|
||||||
return generic_shader_action_parameter_left(shader, param, type, label, wraparound);
|
|
||||||
|
video_shader_driver_ctl(SHADER_CTL_GET_CURRENT_SHADER, &shader_info);
|
||||||
|
|
||||||
|
param = &shader_info.data->parameters[type - MENU_SETTINGS_SHADER_PARAMETER_0];
|
||||||
|
return generic_shader_action_parameter_left(shader_info.data, param, type, label, wraparound);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int shader_action_parameter_preset_left(unsigned type, const char *label,
|
static int shader_action_parameter_preset_left(unsigned type, const char *label,
|
||||||
|
@ -56,9 +56,13 @@ static int generic_shader_action_parameter_right(
|
|||||||
|
|
||||||
int shader_action_parameter_right(unsigned type, const char *label, bool wraparound)
|
int shader_action_parameter_right(unsigned type, const char *label, bool wraparound)
|
||||||
{
|
{
|
||||||
struct video_shader *shader = video_shader_driver_get_current_shader();
|
video_shader_ctx_t shader_info;
|
||||||
struct video_shader_parameter *param = &shader->parameters[type - MENU_SETTINGS_SHADER_PARAMETER_0];
|
struct video_shader_parameter *param = NULL;
|
||||||
return generic_shader_action_parameter_right(shader, param, type, label, wraparound);
|
|
||||||
|
video_shader_driver_ctl(SHADER_CTL_GET_CURRENT_SHADER, &shader_info);
|
||||||
|
|
||||||
|
param = &shader_info.data->parameters[type - MENU_SETTINGS_SHADER_PARAMETER_0];
|
||||||
|
return generic_shader_action_parameter_right(shader_info.data, param, type, label, wraparound);
|
||||||
}
|
}
|
||||||
|
|
||||||
int shader_action_parameter_preset_right(unsigned type, const char *label,
|
int shader_action_parameter_preset_right(unsigned type, const char *label,
|
||||||
|
@ -114,13 +114,16 @@ static int action_start_input_desc(unsigned type, const char *label)
|
|||||||
static int action_start_shader_action_parameter(unsigned type, const char *label)
|
static int action_start_shader_action_parameter(unsigned type, const char *label)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_SHADER_MANAGER
|
#ifdef HAVE_SHADER_MANAGER
|
||||||
|
video_shader_ctx_t shader_info;
|
||||||
struct video_shader_parameter *param = NULL;
|
struct video_shader_parameter *param = NULL;
|
||||||
struct video_shader *shader = video_shader_driver_get_current_shader();
|
|
||||||
|
|
||||||
if (!shader)
|
video_shader_driver_ctl(SHADER_CTL_GET_CURRENT_SHADER, &shader_info);
|
||||||
|
|
||||||
|
if (!shader_info.data)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
param = &shader->parameters[type - MENU_SETTINGS_SHADER_PARAMETER_0];
|
param = &shader_info.data->parameters
|
||||||
|
[type - MENU_SETTINGS_SHADER_PARAMETER_0];
|
||||||
param->current = param->initial;
|
param->current = param->initial;
|
||||||
param->current = min(max(param->minimum, param->current), param->maximum);
|
param->current = min(max(param->minimum, param->current), param->maximum);
|
||||||
|
|
||||||
|
@ -2569,10 +2569,10 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type)
|
|||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
menu_ctx_displaylist_t disp_list;
|
menu_ctx_displaylist_t disp_list;
|
||||||
int ret = 0;
|
|
||||||
#ifdef HAVE_SHADER_MANAGER
|
#ifdef HAVE_SHADER_MANAGER
|
||||||
struct video_shader *shader = NULL;
|
video_shader_ctx_t shader_info;
|
||||||
#endif
|
#endif
|
||||||
|
int ret = 0;
|
||||||
rarch_system_info_t *system = NULL;
|
rarch_system_info_t *system = NULL;
|
||||||
core_info_list_t *list = NULL;
|
core_info_list_t *list = NULL;
|
||||||
menu_handle_t *menu = NULL;
|
menu_handle_t *menu = NULL;
|
||||||
@ -3014,11 +3014,13 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type)
|
|||||||
case DISPLAYLIST_SHADER_PARAMETERS:
|
case DISPLAYLIST_SHADER_PARAMETERS:
|
||||||
case DISPLAYLIST_SHADER_PARAMETERS_PRESET:
|
case DISPLAYLIST_SHADER_PARAMETERS_PRESET:
|
||||||
#ifdef HAVE_SHADER_MANAGER
|
#ifdef HAVE_SHADER_MANAGER
|
||||||
shader = video_shader_driver_get_current_shader();
|
video_shader_driver_ctl(SHADER_CTL_GET_CURRENT_SHADER, &shader_info);
|
||||||
if (shader)
|
|
||||||
ret = deferred_push_video_shader_parameters_common(info, shader,
|
if (shader_info.data)
|
||||||
|
ret = deferred_push_video_shader_parameters_common(info, shader_info.data,
|
||||||
(type == DISPLAYLIST_SHADER_PARAMETERS)
|
(type == DISPLAYLIST_SHADER_PARAMETERS)
|
||||||
? MENU_SETTINGS_SHADER_PARAMETER_0 : MENU_SETTINGS_SHADER_PRESET_PARAMETER_0
|
? MENU_SETTINGS_SHADER_PARAMETER_0
|
||||||
|
: MENU_SETTINGS_SHADER_PRESET_PARAMETER_0
|
||||||
);
|
);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -118,13 +118,18 @@ static shader_dlg_t g_shader_dlg = {0};
|
|||||||
|
|
||||||
static void shader_dlg_refresh_trackbar_label(int index)
|
static void shader_dlg_refresh_trackbar_label(int index)
|
||||||
{
|
{
|
||||||
|
video_shader_ctx_t shader_info;
|
||||||
char val_buffer[32] = {0};
|
char val_buffer[32] = {0};
|
||||||
struct video_shader* shader = video_shader_driver_get_current_shader();
|
|
||||||
|
|
||||||
if (floorf(shader->parameters[index].current) == shader->parameters[index].current)
|
video_shader_driver_ctl(SHADER_CTL_GET_CURRENT_SHADER, &shader_info);
|
||||||
snprintf(val_buffer, sizeof(val_buffer), "%.0f", shader->parameters[index].current);
|
|
||||||
|
if (floorf(shader_info.data->parameters[index].current)
|
||||||
|
== shader_info.data->parameters[index].current)
|
||||||
|
snprintf(val_buffer, sizeof(val_buffer), "%.0f",
|
||||||
|
shader_info.data->parameters[index].current);
|
||||||
else
|
else
|
||||||
snprintf(val_buffer, sizeof(val_buffer), "%.2f", shader->parameters[index].current);
|
snprintf(val_buffer, sizeof(val_buffer), "%.2f",
|
||||||
|
shader_info.data->parameters[index].current);
|
||||||
|
|
||||||
SendMessage(g_shader_dlg.controls[index].trackbar.label_val, WM_SETTEXT, 0, (LPARAM)val_buffer);
|
SendMessage(g_shader_dlg.controls[index].trackbar.label_val, WM_SETTEXT, 0, (LPARAM)val_buffer);
|
||||||
|
|
||||||
@ -133,7 +138,9 @@ static void shader_dlg_refresh_trackbar_label(int index)
|
|||||||
static void shader_dlg_params_refresh(void)
|
static void shader_dlg_params_refresh(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
struct video_shader* shader = video_shader_driver_get_current_shader();
|
video_shader_ctx_t shader_info;
|
||||||
|
|
||||||
|
video_shader_driver_ctl(SHADER_CTL_GET_CURRENT_SHADER, &shader_info);
|
||||||
|
|
||||||
for (i = 0; i < GFX_MAX_PARAMETERS; i++)
|
for (i = 0; i < GFX_MAX_PARAMETERS; i++)
|
||||||
{
|
{
|
||||||
@ -146,7 +153,9 @@ static void shader_dlg_params_refresh(void)
|
|||||||
{
|
{
|
||||||
case SHADER_PARAM_CTRL_CHECKBOX:
|
case SHADER_PARAM_CTRL_CHECKBOX:
|
||||||
{
|
{
|
||||||
bool checked = (shader->parameters[i].current == shader->parameters[i].maximum);
|
bool checked =
|
||||||
|
(shader_info.data->parameters[i].current ==
|
||||||
|
shader_info.data->parameters[i].maximum);
|
||||||
SendMessage(control->checkbox.hwnd, BM_SETCHECK, checked, 0);
|
SendMessage(control->checkbox.hwnd, BM_SETCHECK, checked, 0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -155,9 +164,13 @@ static void shader_dlg_params_refresh(void)
|
|||||||
|
|
||||||
SendMessage(control->trackbar.hwnd, TBM_SETRANGEMIN, (WPARAM)TRUE, (LPARAM)0);
|
SendMessage(control->trackbar.hwnd, TBM_SETRANGEMIN, (WPARAM)TRUE, (LPARAM)0);
|
||||||
SendMessage(control->trackbar.hwnd, TBM_SETRANGEMAX, (WPARAM)TRUE,
|
SendMessage(control->trackbar.hwnd, TBM_SETRANGEMAX, (WPARAM)TRUE,
|
||||||
(LPARAM)((shader->parameters[i].maximum - shader->parameters[i].minimum) / shader->parameters[i].step));
|
(LPARAM)((shader_info.data->parameters[i].maximum -
|
||||||
|
shader_info.data->parameters[i].minimum)
|
||||||
|
/ shader_info.data->parameters[i].step));
|
||||||
SendMessage(control->trackbar.hwnd, TBM_SETPOS, (WPARAM)TRUE,
|
SendMessage(control->trackbar.hwnd, TBM_SETPOS, (WPARAM)TRUE,
|
||||||
(LPARAM)((shader->parameters[i].current - shader->parameters[i].minimum) / shader->parameters[i].step));
|
(LPARAM)((shader_info.data->parameters[i].current -
|
||||||
|
shader_info.data->parameters[i].minimum) /
|
||||||
|
shader_info.data->parameters[i].step));
|
||||||
break;
|
break;
|
||||||
case SHADER_PARAM_CTRL_NONE:
|
case SHADER_PARAM_CTRL_NONE:
|
||||||
default:
|
default:
|
||||||
@ -200,25 +213,28 @@ void shader_dlg_params_reload(void)
|
|||||||
HFONT hFont;
|
HFONT hFont;
|
||||||
RECT parent_rect;
|
RECT parent_rect;
|
||||||
int i, pos_x, pos_y;
|
int i, pos_x, pos_y;
|
||||||
struct video_shader* shader = video_shader_driver_get_current_shader();
|
video_shader_ctx_t shader_info;
|
||||||
|
|
||||||
|
video_shader_driver_ctl(SHADER_CTL_GET_CURRENT_SHADER, &shader_info);
|
||||||
|
|
||||||
shader_dlg_params_clear();
|
shader_dlg_params_clear();
|
||||||
|
|
||||||
if (!shader)
|
if (!shader_info.data)
|
||||||
return;
|
return;
|
||||||
if (shader->num_parameters > GFX_MAX_PARAMETERS)
|
if (shader_info.data->num_parameters > GFX_MAX_PARAMETERS)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
hFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
|
hFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
|
||||||
pos_y = g_shader_dlg.parameters_start_y;
|
pos_y = g_shader_dlg.parameters_start_y;
|
||||||
pos_x = SHADER_DLG_CTRL_X;
|
pos_x = SHADER_DLG_CTRL_X;
|
||||||
|
|
||||||
for (i = 0; i < (int)shader->num_parameters; i++)
|
for (i = 0; i < (int)shader_info.data->num_parameters; i++)
|
||||||
{
|
{
|
||||||
shader_param_ctrl_t*control = &g_shader_dlg.controls[i];
|
shader_param_ctrl_t*control = &g_shader_dlg.controls[i];
|
||||||
|
|
||||||
if ((shader->parameters[i].minimum == 0.0)
|
if ((shader_info.data->parameters[i].minimum == 0.0)
|
||||||
&& (shader->parameters[i].maximum == (shader->parameters[i].minimum + shader->parameters[i].step)))
|
&& (shader_info.data->parameters[i].maximum
|
||||||
|
== (shader_info.data->parameters[i].minimum + shader_info.data->parameters[i].step)))
|
||||||
{
|
{
|
||||||
if ((pos_y + SHADER_DLG_CHECKBOX_HEIGHT + SHADER_DLG_CTRL_MARGIN + 20) > SHADER_DLG_MAX_HEIGHT)
|
if ((pos_y + SHADER_DLG_CHECKBOX_HEIGHT + SHADER_DLG_CTRL_MARGIN + 20) > SHADER_DLG_MAX_HEIGHT)
|
||||||
{
|
{
|
||||||
@ -227,7 +243,7 @@ void shader_dlg_params_reload(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
control->type = SHADER_PARAM_CTRL_CHECKBOX;
|
control->type = SHADER_PARAM_CTRL_CHECKBOX;
|
||||||
control->checkbox.hwnd = CreateWindowEx(0, "BUTTON", shader->parameters[i].desc,
|
control->checkbox.hwnd = CreateWindowEx(0, "BUTTON", shader_info.data->parameters[i].desc,
|
||||||
WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX, pos_x, pos_y, SHADER_DLG_CTRL_WIDTH, SHADER_DLG_CHECKBOX_HEIGHT,
|
WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX, pos_x, pos_y, SHADER_DLG_CTRL_WIDTH, SHADER_DLG_CHECKBOX_HEIGHT,
|
||||||
g_shader_dlg.hwnd, (HMENU)(size_t)i, NULL, NULL);
|
g_shader_dlg.hwnd, (HMENU)(size_t)i, NULL, NULL);
|
||||||
SendMessage(control->checkbox.hwnd, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));
|
SendMessage(control->checkbox.hwnd, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));
|
||||||
@ -243,7 +259,7 @@ void shader_dlg_params_reload(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
control->type = SHADER_PARAM_CTRL_TRACKBAR;
|
control->type = SHADER_PARAM_CTRL_TRACKBAR;
|
||||||
control->trackbar.label_title = CreateWindowEx(0, "STATIC", shader->parameters[i].desc,
|
control->trackbar.label_title = CreateWindowEx(0, "STATIC", shader_info.data->parameters[i].desc,
|
||||||
WS_CHILD | WS_VISIBLE | SS_LEFT, pos_x, pos_y, SHADER_DLG_CTRL_WIDTH, SHADER_DLG_LABEL_HEIGHT, g_shader_dlg.hwnd,
|
WS_CHILD | WS_VISIBLE | SS_LEFT, pos_x, pos_y, SHADER_DLG_CTRL_WIDTH, SHADER_DLG_LABEL_HEIGHT, g_shader_dlg.hwnd,
|
||||||
(HMENU)(size_t)i, NULL, NULL);
|
(HMENU)(size_t)i, NULL, NULL);
|
||||||
SendMessage(control->trackbar.label_title, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));
|
SendMessage(control->trackbar.label_title, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));
|
||||||
@ -318,7 +334,9 @@ static LRESULT CALLBACK ShaderDlgWndProc(HWND hwnd, UINT message,
|
|||||||
WPARAM wparam, LPARAM lparam)
|
WPARAM wparam, LPARAM lparam)
|
||||||
{
|
{
|
||||||
int i, pos;
|
int i, pos;
|
||||||
struct video_shader* shader = video_shader_driver_get_current_shader();
|
video_shader_ctx_t shader_info;
|
||||||
|
|
||||||
|
video_shader_driver_ctl(SHADER_CTL_GET_CURRENT_SHADER, &shader_info);
|
||||||
|
|
||||||
switch (message)
|
switch (message)
|
||||||
{
|
{
|
||||||
@ -347,9 +365,9 @@ static LRESULT CALLBACK ShaderDlgWndProc(HWND hwnd, UINT message,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
if (SendMessage(g_shader_dlg.controls[i].checkbox.hwnd, BM_GETCHECK, 0, 0) == BST_CHECKED)
|
if (SendMessage(g_shader_dlg.controls[i].checkbox.hwnd, BM_GETCHECK, 0, 0) == BST_CHECKED)
|
||||||
shader->parameters[i].current = shader->parameters[i].maximum;
|
shader_info.data->parameters[i].current = shader_info.data->parameters[i].maximum;
|
||||||
else
|
else
|
||||||
shader->parameters[i].current = shader->parameters[i].minimum;
|
shader_info.data->parameters[i].current = shader_info.data->parameters[i].minimum;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -363,7 +381,8 @@ static LRESULT CALLBACK ShaderDlgWndProc(HWND hwnd, UINT message,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
pos = (int)SendMessage(g_shader_dlg.controls[i].trackbar.hwnd, TBM_GETPOS, 0, 0);
|
pos = (int)SendMessage(g_shader_dlg.controls[i].trackbar.hwnd, TBM_GETPOS, 0, 0);
|
||||||
shader->parameters[i].current = shader->parameters[i].minimum + pos * shader->parameters[i].step;
|
shader_info.data->parameters[i].current =
|
||||||
|
shader_info.data->parameters[i].minimum + pos * shader_info.data->parameters[i].step;
|
||||||
|
|
||||||
shader_dlg_refresh_trackbar_label(i);
|
shader_dlg_refresh_trackbar_label(i);
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user