コード例 #1
0
ファイル: ui_win32.c プロジェクト: AkimanBengus/RetroArch
static void shader_dlg_params_refresh(void)
{
   int i;
   struct video_shader* shader = video_shader_driver_get_current_shader();

   for (i = 0; i < GFX_MAX_PARAMETERS; i++)
   {
      shader_param_ctrl_t*control = &g_shader_dlg.controls[i];

      if (control->type == SHADER_PARAM_CTRL_NONE)
         break;

      switch (control->type)
      {
         case SHADER_PARAM_CTRL_CHECKBOX:
            {
               bool checked = (shader->parameters[i].current == shader->parameters[i].maximum);
               SendMessage(control->checkbox.hwnd, BM_SETCHECK, checked, 0);
            }
            break;
         case SHADER_PARAM_CTRL_TRACKBAR:
            shader_dlg_refresh_trackbar_label(i);

            SendMessage(control->trackbar.hwnd, TBM_SETRANGEMIN, (WPARAM)TRUE, (LPARAM)0);
            SendMessage(control->trackbar.hwnd, TBM_SETRANGEMAX, (WPARAM)TRUE,
                  (LPARAM)((shader->parameters[i].maximum - shader->parameters[i].minimum) / shader->parameters[i].step));
            SendMessage(control->trackbar.hwnd, TBM_SETPOS, (WPARAM)TRUE,
                  (LPARAM)((shader->parameters[i].current - shader->parameters[i].minimum) / shader->parameters[i].step));
            break;
         case SHADER_PARAM_CTRL_NONE:
         default:
            break;
      }
   }
}
コード例 #2
0
ファイル: win32_shader_dlg.c プロジェクト: mak77/RetroArch
static void shader_dlg_params_refresh(void)
{
   int i;
   struct video_shader* shader = video_shader_driver_get_current_shader();

   for (i = 0; i < GFX_MAX_PARAMETERS; i++)
   {
      if (g_shader_dlg.controls[i].type == SHADER_PARAM_CTRL_NONE)
         break;

      if (g_shader_dlg.controls[i].type == SHADER_PARAM_CTRL_CHECKBOX)
      {
         bool checked = (shader->parameters[i].current == shader->parameters[i].maximum);
         SendMessage(g_shader_dlg.controls[i].checkbox.hwnd, BM_SETCHECK, checked, 0);

      }
      else if (g_shader_dlg.controls[i].type == SHADER_PARAM_CTRL_TRACKBAR)
      {
         shader_dlg_refresh_trackbar_label(i);

         SendMessage(g_shader_dlg.controls[i].trackbar.hwnd, TBM_SETRANGEMIN, (WPARAM)TRUE, (LPARAM)0);
         SendMessage(g_shader_dlg.controls[i].trackbar.hwnd, TBM_SETRANGEMAX, (WPARAM)TRUE,
               (LPARAM)((shader->parameters[i].maximum - shader->parameters[i].minimum) / shader->parameters[i].step));
         SendMessage(g_shader_dlg.controls[i].trackbar.hwnd, TBM_SETPOS, (WPARAM)TRUE,
               (LPARAM)((shader->parameters[i].current - shader->parameters[i].minimum) / shader->parameters[i].step));

      }
   }
}
コード例 #3
0
ファイル: ui_win32.c プロジェクト: AkimanBengus/RetroArch
static LRESULT CALLBACK ShaderDlgWndProc(HWND hwnd, UINT message,
      WPARAM wparam, LPARAM lparam)
{
   int i, pos;
   struct video_shader* shader = video_shader_driver_get_current_shader();

   switch (message)
   {
      case WM_CREATE:
         break;

      case WM_CLOSE:
      case WM_DESTROY:
      case WM_QUIT:
         ShowWindow(g_shader_dlg.hwnd, 0);
         return 0;

      case WM_COMMAND:
         i = LOWORD(wparam);

         if (i == SHADER_DLG_CHECKBOX_ONTOP_ID)
         {
            shader_dlg_update_on_top_state();
            break;
         }

         if (i >= GFX_MAX_PARAMETERS)
            break;

         if (g_shader_dlg.controls[i].type != SHADER_PARAM_CTRL_CHECKBOX)
            break;

         if (SendMessage(g_shader_dlg.controls[i].checkbox.hwnd, BM_GETCHECK, 0, 0) == BST_CHECKED)
            shader->parameters[i].current = shader->parameters[i].maximum;
         else
            shader->parameters[i].current = shader->parameters[i].minimum;

         break;

      case WM_HSCROLL:
         i = GetWindowLong((HWND)lparam, GWL_ID);

         if (i >= GFX_MAX_PARAMETERS)
            break;

         if (g_shader_dlg.controls[i].type != SHADER_PARAM_CTRL_TRACKBAR)
            break;

         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_dlg_refresh_trackbar_label(i);
         break;

   }

   return DefWindowProc(hwnd, message, wparam, lparam);
}
コード例 #4
0
ファイル: ui_win32.c プロジェクト: DoctorGoat/RetroArch_LibNX
static void shader_dlg_params_refresh(void)
{
   int i;

   for (i = 0; i < GFX_MAX_PARAMETERS; i++)
   {
      shader_param_ctrl_t*control = &g_shader_dlg.controls[i];

      if (control->type == SHADER_PARAM_CTRL_NONE)
         break;

      switch (control->type)
      {
         case SHADER_PARAM_CTRL_CHECKBOX:
            {
               bool checked;

               video_shader_ctx_t shader_info;
               video_shader_driver_get_current_shader(&shader_info);

               checked = shader_info.data ?
                  (shader_info.data->parameters[i].current ==
                   shader_info.data->parameters[i].maximum) : false;
               SendMessage(control->elems.checkbox.hwnd, BM_SETCHECK, checked, 0);
            }
            break;
         case SHADER_PARAM_CTRL_TRACKBAR:
            {
               video_shader_ctx_t shader_info;
               video_shader_driver_get_current_shader(&shader_info);
               if (shader_info.data && !shader_dlg_refresh_trackbar_label(i, &shader_info))
                  break;

               if (shader_info.data)
               {
                  SendMessage(control->elems.trackbar.hwnd,
                        TBM_SETRANGEMIN, (WPARAM)TRUE, (LPARAM)0);
                  SendMessage(control->elems.trackbar.hwnd,
                        TBM_SETRANGEMAX, (WPARAM)TRUE,
                        (LPARAM)((shader_info.data->parameters[i].maximum -
                              shader_info.data->parameters[i].minimum)
                           / shader_info.data->parameters[i].step));
                  SendMessage(control->elems.trackbar.hwnd, TBM_SETPOS, (WPARAM)TRUE,
                        (LPARAM)((shader_info.data->parameters[i].current -
                              shader_info.data->parameters[i].minimum) /
                           shader_info.data->parameters[i].step));
               }
            }
            break;
         case SHADER_PARAM_CTRL_NONE:
         default:
            break;
      }
   }
}
コード例 #5
0
ファイル: ui_win32.c プロジェクト: arakerlu/RetroArch
static LRESULT CALLBACK ShaderDlgWndProc(HWND hwnd, UINT message,
      WPARAM wparam, LPARAM lparam)
{
   int i, pos;
   const ui_window_t *window = ui_companion_driver_get_window_ptr();

   switch (message)
   {
      case WM_CREATE:
         break;

      case WM_CLOSE:
      case WM_DESTROY:
      case WM_QUIT:
         if (window)
            window->set_visible(&g_shader_dlg.window, false);
         return 0;

      case WM_COMMAND:
         i = LOWORD(wparam);

         if (i == SHADER_DLG_CHECKBOX_ONTOP_ID)
         {
            shader_dlg_update_on_top_state();
            break;
         }

         if (i >= GFX_MAX_PARAMETERS)
            break;

         if (g_shader_dlg.controls[i].type != SHADER_PARAM_CTRL_CHECKBOX)
            break;

         {
            video_shader_ctx_t shader_info;
            video_shader_driver_get_current_shader(&shader_info);

            if (SendMessage(g_shader_dlg.controls[i].checkbox.hwnd,
                     BM_GETCHECK, 0, 0) == BST_CHECKED)
               shader_info.data->parameters[i].current = 
                  shader_info.data->parameters[i].maximum;
            else
               shader_info.data->parameters[i].current = 
                  shader_info.data->parameters[i].minimum;
         }
         break;

      case WM_HSCROLL:
         {
            video_shader_ctx_t shader_info;
            video_shader_driver_get_current_shader(&shader_info);
            i = GetWindowLong((HWND)lparam, GWL_ID);

            if (i >= GFX_MAX_PARAMETERS)
               break;

            if (g_shader_dlg.controls[i].type != SHADER_PARAM_CTRL_TRACKBAR)
               break;

            pos = (int)SendMessage(g_shader_dlg.controls[i].trackbar.hwnd, TBM_GETPOS, 0, 0);

            {

               shader_info.data->parameters[i].current = 
                  shader_info.data->parameters[i].minimum + pos * shader_info.data->parameters[i].step;
            }

            if (shader_info.data)
               shader_dlg_refresh_trackbar_label(i, &shader_info);
         }
         break;

   }

   return DefWindowProc(hwnd, message, wparam, lparam);
}