コード例 #1
0
ファイル: video_driver.c プロジェクト: chungy/RetroArch
/**
 * video_driver_cached_frame:
 *
 * Renders the current video frame.
 **/
void video_driver_cached_frame(void)
{
   driver_t *driver   = driver_get_ptr();
   void *recording    = driver ? driver->recording_data : NULL;

   if (rarch_main_is_idle())
      return;

   /* Cannot allow recording when pushing duped frames. */
   driver->recording_data = NULL;

   /* Not 100% safe, since the library might have
    * freed the memory, but no known implementations do this.
    * It would be really stupid at any rate ...
    */
   if (driver->retro_ctx.frame_cb)
      driver->retro_ctx.frame_cb(
            (video_state.frame_cache.data == RETRO_HW_FRAME_BUFFER_VALID)
            ? NULL : video_state.frame_cache.data,
            video_state.frame_cache.width,
            video_state.frame_cache.height,
            video_state.frame_cache.pitch);

   driver->recording_data = recording;
}
コード例 #2
0
int menu_iterate_render(void)
{
   const menu_ctx_driver_t *driver = menu_ctx_driver_get_ptr();
   menu_handle_t *menu       = menu_driver_get_ptr();

   if (!menu)
      return -1;

   if (menu->state.fb_is_dirty != menu->state.do_messagebox)
      menu->state.fb_is_dirty = true;

   if (menu->state.fb_is_dirty)
      menu_display_fb_set_dirty();

   if (menu->state.do_messagebox && menu->state.msg[0] != '\0')
   {
      if (driver->render_messagebox)
         driver->render_messagebox(menu->state.msg);
      if (ui_companion_is_on_foreground())
      {
         const ui_companion_driver_t *ui = ui_companion_get_ptr();
         if (ui->render_messagebox)
            ui->render_messagebox(menu->state.msg);
      }
   }
      
   if (menu->state.do_render)
   {
      if (driver->render)
         driver->render();
   }

   if (menu_driver_alive() && !rarch_main_is_idle())
      menu_display_fb();

   menu_driver_set_texture();

   return 0;
}