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();
}
Beispiel #2
0
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();
}