(Menu) Fix shader filter/scale no longer working on subsequent shader

passes
This commit is contained in:
twinaphex 2014-08-04 01:42:15 +02:00
parent 39cb690ba6
commit b99de9c92e

View File

@ -3132,15 +3132,14 @@ static int menu_common_shader_manager_setting_toggle(unsigned setting, unsigned
} }
else if ((dist_filter % 3) == 0) else if ((dist_filter % 3) == 0)
{ {
dist_filter /= 3;
struct gfx_shader *shader = (struct gfx_shader*)driver.menu->shader; struct gfx_shader *shader = (struct gfx_shader*)driver.menu->shader;
struct gfx_shader_pass *pass = (struct gfx_shader_pass*)&shader->pass[dist_filter]; struct gfx_shader_pass *pass = (struct gfx_shader_pass*)&shader->pass[dist_filter];
dist_filter /= 3;
switch (action) switch (action)
{ {
case MENU_ACTION_START: case MENU_ACTION_START:
if (shader->pass) if (shader && shader->pass)
shader->pass[dist_filter].filter = RARCH_FILTER_UNSPEC; shader->pass[dist_filter].filter = RARCH_FILTER_UNSPEC;
break; break;
@ -3148,7 +3147,7 @@ static int menu_common_shader_manager_setting_toggle(unsigned setting, unsigned
case MENU_ACTION_RIGHT: case MENU_ACTION_RIGHT:
case MENU_ACTION_OK: case MENU_ACTION_OK:
{ {
unsigned delta = action == MENU_ACTION_LEFT ? 2 : 1; unsigned delta = (action == MENU_ACTION_LEFT) ? 2 : 1;
if (pass) if (pass)
pass->filter = ((pass->filter + delta) % 3); pass->filter = ((pass->filter + delta) % 3);
break; break;
@ -3160,15 +3159,14 @@ static int menu_common_shader_manager_setting_toggle(unsigned setting, unsigned
} }
else if ((dist_scale % 3) == 0) else if ((dist_scale % 3) == 0)
{ {
dist_scale /= 3;
struct gfx_shader *shader = (struct gfx_shader*)driver.menu->shader; struct gfx_shader *shader = (struct gfx_shader*)driver.menu->shader;
struct gfx_shader_pass *pass = (struct gfx_shader_pass*)&shader->pass[dist_scale]; struct gfx_shader_pass *pass = (struct gfx_shader_pass*)&shader->pass[dist_scale];
dist_scale /= 3;
switch (action) switch (action)
{ {
case MENU_ACTION_START: case MENU_ACTION_START:
if (shader->pass) if (shader && shader->pass)
{ {
pass->fbo.scale_x = pass->fbo.scale_y = 0; pass->fbo.scale_x = pass->fbo.scale_y = 0;
pass->fbo.valid = false; pass->fbo.valid = false;