Ejemplo n.º 1
0
void uninit_video_input(void)
{
   driver_t *driver = driver_get_ptr();

   event_command(EVENT_CMD_OVERLAY_DEINIT);

   if (
         !driver->input_data_own &&
         (driver->input_data != driver->video_data)
      )
      input_driver_free();

   if (
         !driver->video_data_own &&
         driver->video_data &&
         driver->video &&
         driver->video->free)
      driver->video->free(driver->video_data);

   deinit_pixel_converter();

   deinit_video_filter();

   video_driver_unset_callback();
   event_command(EVENT_CMD_SHADER_DIR_DEINIT);
   video_monitor_compute_fps_statistics();
}
Ejemplo n.º 2
0
void uninit_video_input(void)
{
#ifdef HAVE_OVERLAY
   if (driver.overlay)
   {
      input_overlay_free(driver.overlay);
      driver.overlay = NULL;
      memset(&driver.overlay_state, 0, sizeof(driver.overlay_state));
   }
#endif

   if (!driver.input_data_own && driver.input_data != driver.video_data && driver.input && driver.input->free)
      input_free_func();


   if (!driver.video_data_own && driver.video_data && driver.video && driver.video->free)
      video_free_func();

   deinit_pixel_converter();

   rarch_deinit_filter();

   deinit_shader_dir();
   compute_monitor_fps_statistics();
}
Ejemplo n.º 3
0
bool init_video_pixel_converter(unsigned size)
{
    /* This function can be called multiple times
     * without deiniting first on consoles. */
    deinit_pixel_converter();

    /* If pixel format is not 0RGB1555, we don't need to do
     * any internal pixel conversion. */
    if (video_driver_get_pixel_format() != RETRO_PIXEL_FORMAT_0RGB1555)
        return true;

    RARCH_WARN("0RGB1555 pixel format is deprecated, and will be slower. For 15/16-bit, RGB565 format is preferred.\n");

    scaler_ptr = (video_pixel_scaler_t*)calloc(1, sizeof(*scaler_ptr));

    if (!scaler_ptr)
        goto error;

    scaler_ptr->scaler = (struct scaler_ctx*)calloc(1, sizeof(*scaler_ptr->scaler));

    if (!scaler_ptr->scaler)
        goto error;

    scaler_ptr->scaler->scaler_type = SCALER_TYPE_POINT;
    scaler_ptr->scaler->in_fmt      = SCALER_FMT_0RGB1555;

    /* TODO: Pick either ARGB8888 or RGB565 depending on driver. */
    scaler_ptr->scaler->out_fmt     = SCALER_FMT_RGB565;

    if (!scaler_ctx_gen_filter(scaler_ptr->scaler))
        goto error;

    scaler_ptr->scaler_out = calloc(sizeof(uint16_t), size * size);

    if (!scaler_ptr->scaler_out)
        goto error;

    return true;

error:
    if (scaler_ptr->scaler_out)
        free(scaler_ptr->scaler_out);
    if (scaler_ptr->scaler)
        free(scaler_ptr->scaler);
    if (scaler_ptr)
        free(scaler_ptr);

    scaler_ptr = NULL;

    return false;
}
Ejemplo n.º 4
0
void uninit_video_input(void)
{
   rarch_main_command(RARCH_CMD_OVERLAY_DEINIT);

   if (!driver.input_data_own && driver.input_data != driver.video_data && driver.input && driver.input->free)
      driver.input->free(driver.input_data);

   if (!driver.video_data_own && driver.video_data && driver.video && driver.video->free)
      driver.video->free(driver.video_data);

   deinit_pixel_converter();

   rarch_deinit_filter();

   deinit_shader_dir();
   compute_monitor_fps_statistics();
}
Ejemplo n.º 5
0
static bool init_video_pixel_converter(unsigned size)
{
   // This function can be called multiple times without deiniting first on consoles.
   deinit_pixel_converter();

   if (g_extern.system.pix_fmt == RETRO_PIXEL_FORMAT_0RGB1555)
   {
      RARCH_WARN("0RGB1555 pixel format is deprecated, and will be slower. For 15/16-bit, RGB565 format is preferred.\n");

      driver.scaler.scaler_type = SCALER_TYPE_POINT;
      driver.scaler.in_fmt      = SCALER_FMT_0RGB1555;

      // TODO: Pick either ARGB8888 or RGB565 depending on driver ...
      driver.scaler.out_fmt     = SCALER_FMT_RGB565;

      if (!scaler_ctx_gen_filter(&driver.scaler))
         return false;

      driver.scaler_out = calloc(sizeof(uint16_t), size * size);
   }

   return true;
}