void ShaderParamsDialog::onShaderClearAllPassesClicked() { struct video_shader *menu_shader = NULL; struct video_shader *video_shader = NULL; getShaders(&menu_shader, &video_shader); if (!menu_shader) return; while (menu_shader->passes > 0) menu_shader_manager_decrement_amount_passes(); onShaderApplyClicked(); }
static int action_left_shader_num_passes(unsigned type, const char *label, bool wraparound) { bool refresh = false; struct video_shader *shader = menu_shader_get(); unsigned pass_count = shader ? shader->passes : 0; if (!shader) return menu_cbs_exit(); if (pass_count > 0) menu_shader_manager_decrement_amount_passes(); menu_entries_ctl(MENU_ENTRIES_CTL_SET_REFRESH, &refresh); menu_driver_ctl(RARCH_MENU_CTL_SET_PREVENT_POPULATE, NULL); video_shader_resolve_parameters(NULL, shader); return 0; }
void ShaderParamsDialog::onShaderRemovePassClicked() { int i; QVariant passVariant; QAction *action = qobject_cast<QAction*>(sender()); struct video_shader *menu_shader = NULL; struct video_shader *video_shader = NULL; int pass = 0; bool ok = false; getShaders(&menu_shader, &video_shader); if (!menu_shader || menu_shader->passes == 0 || !action) return; passVariant = action->data(); if (!passVariant.isValid()) return; pass = passVariant.toInt(&ok); if (!ok) return; if (pass < 0 || pass > static_cast<int>(menu_shader->passes)) return; /* move selected pass to the bottom */ for (i = pass; i < static_cast<int>(menu_shader->passes) - 1; i++) { std::swap(menu_shader->pass[i], menu_shader->pass[i + 1]); } menu_shader_manager_decrement_amount_passes(); onShaderApplyClicked(); }