コード例 #1
0
ファイル: glui.c プロジェクト: bentley/RetroArch
static void glui_layout(menu_handle_t *menu, glui_handle_t *glui)
{
   menu_display_t *disp = menu_display_get_ptr();
   float scale_factor;
   unsigned width, height;
   video_driver_get_size(&width, &height);

   /* Mobiles platforms may have very small display metrics coupled to a high
      resolution, so we should be dpi aware to ensure the entries hitboxes are big
      enough. On desktops, we just care about readability, with every widget size
      proportional to the display width. */
   scale_factor = menu_display_get_dpi();

   glui->line_height            = scale_factor / 3;
   glui->margin                 = scale_factor / 6;
   menu->display.header_height  = scale_factor / 3;
   menu->display.font.size      = scale_factor / 10;
   /* we assume the average glyph aspect ratio is close to 3:4 */
   glui->glyph_width            = menu->display.font.size * 3/4;

   glui_font(menu);

   if (disp && disp->font.buf) /* calculate a more realistic ticker_limit */
   {
      driver_t *driver   = driver_get_ptr();
      int m_width = driver->font_osd_driver->get_message_width(disp->font.buf, "a", 1, 1);

      if (m_width)
         glui->glyph_width = m_width;
   }
}
コード例 #2
0
ファイル: nuklear.c プロジェクト: DanielAeolusLaude/RetroArch
static void nk_menu_layout(nk_menu_handle_t *nk)
{
   float scale_factor;
   unsigned width, height, new_header_height;

   video_driver_get_size(&width, &height);

   scale_factor = menu_display_get_dpi();
   menu_display_set_header_height(new_header_height);
}
コード例 #3
0
ファイル: glui.c プロジェクト: hbfelizzola/RetroArch
static void *glui_init(void)
{
   float dpi;
   glui_handle_t *glui                     = NULL;
   const video_driver_t *video_driver      = NULL;
   menu_handle_t                     *menu = NULL;
   settings_t *settings                    = config_get_ptr();
   gl_t *gl                                = (gl_t*)
      video_driver_get_ptr(&video_driver);

   if (video_driver != &video_gl || !gl)
   {
      RARCH_ERR("Cannot initialize GLUI menu driver: gl video driver is not active.\n");
      return NULL;
   }

   menu                 = (menu_handle_t*)calloc(1, sizeof(*menu));

   if (!menu)
      goto error;

   menu->userdata       = (glui_handle_t*)calloc(1, sizeof(glui_handle_t));

   if (!menu->userdata)
      goto error;

   glui                         = (glui_handle_t*)menu->userdata;
   dpi                          = menu_display_get_dpi();

   glui->line_height            = dpi / 3;
   glui->margin                 = dpi / 6;
   glui->ticker_limit           = dpi / 3;
   menu->display.header_height  = dpi / 3;
   menu->display.font.size      = dpi / 8;
   glui->textures.bg.id         = 0;

   glui_allocate_white_texture(glui);

   if (settings->menu.wallpaper[0] != '\0')
      rarch_main_data_msg_queue_push(DATA_TYPE_IMAGE,
            settings->menu.wallpaper, "cb_menu_wallpaper", 0, 1, true);

   return menu;
error:
   if (menu)
      free(menu);
   return NULL;
}
コード例 #4
0
ファイル: glui.c プロジェクト: netux79/RAvideoFixes
static void glui_layout(menu_handle_t *menu, glui_handle_t *glui)
{
   float scale_factor;
   unsigned width, height;
   settings_t *settings  = config_get_ptr();
   video_driver_get_size(&width, &height);

   if (settings->video.fullscreen)
      scale_factor = menu_display_get_dpi();
   else
      scale_factor = width / 6;

   glui->line_height            = scale_factor / 3;
   glui->margin                 = scale_factor / 6;
   glui->ticker_limit           = scale_factor / 3;
   menu->display.header_height  = scale_factor / 3;
   menu->display.font.size      = scale_factor / 8;
}