コード例 #1
0
static int cb_image_menu_wallpaper_upload(void *data, size_t len)
{
   nbio_handle_t *nbio = (nbio_handle_t*)data; 

   if (!nbio || !data)
      return -1;

   if (nbio->image.processing_final_state == IMAGE_PROCESS_ERROR ||
         nbio->image.processing_final_state == IMAGE_PROCESS_ERROR_END)
      return -1;

   if (driver.menu_ctx && driver.menu_ctx->load_background)
      driver.menu_ctx->load_background(&nbio->image.ti);

   texture_image_free(&nbio->image.ti);

   nbio->image.is_blocking_on_processing         = false;
   nbio->image.is_finished_with_processing       = true;
   nbio->image.is_blocking                       = true;
   nbio->image.is_finished                       = true;
   nbio->is_blocking                             = true;
   nbio->is_finished                             = true;

   return 0;
}
コード例 #2
0
ファイル: shader_cg.c プロジェクト: AreaScout/retro
static bool load_textures(void)
{
   unsigned i;
   if (!cg_shader->luts)
      return true;

   glGenTextures(cg_shader->luts, lut_textures);

   for (i = 0; i < cg_shader->luts; i++)
   {
      RARCH_LOG("Loading image from: \"%s\".\n",
            cg_shader->lut[i].path);

      struct texture_image img = {0};
      if (!texture_image_load(cg_shader->lut[i].path, &img))
      {
         RARCH_ERR("Failed to load picture ...\n");
         return false;
      }

      load_texture_data(lut_textures[i], &img,
            cg_shader->lut[i].filter != RARCH_FILTER_NEAREST,
            gl_wrap_type_to_enum(cg_shader->lut[i].wrap));
      texture_image_free(&img);
   }

   glBindTexture(GL_TEXTURE_2D, 0);
   return true;
}
コード例 #3
0
ファイル: shader_common.c プロジェクト: ChowZenki/RetroArch
bool gl_load_luts(const struct gfx_shader *generic_shader, GLuint *lut_textures)
{
   unsigned i, num_luts;
   
   num_luts = min(generic_shader->luts, GFX_MAX_TEXTURES);

   if (!generic_shader->luts)
      return true;

   //  Original shader_glsl.c code only generated one texture handle.  I assume
   //  it was a bug, but if not, replace num_luts with 1 when GLSL is used.
   glGenTextures(num_luts, lut_textures);
   for (i = 0; i < num_luts; i++)
   {
      struct texture_image img = {0};
      RARCH_LOG("Loading texture image from: \"%s\" ...\n",
            generic_shader->lut[i].path);

      if (!texture_image_load(&img, generic_shader->lut[i].path))
      {
         RARCH_ERR("Failed to load texture image from: \"%s\"\n", generic_shader->lut[i].path);
         return false;
      }

      gl_load_texture_data(lut_textures[i], &img,
            gl_wrap_type_to_enum(generic_shader->lut[i].wrap),
            generic_shader->lut[i].filter != RARCH_FILTER_NEAREST,
            generic_shader->lut[i].mipmap);
      texture_image_free(&img);
   }

   glBindTexture(GL_TEXTURE_2D, 0);
   return true;
}
コード例 #4
0
ファイル: materialui.c プロジェクト: Sotsukun/RetroArch
static void mui_context_reset_textures(mui_handle_t *mui, const char *iconpath)
{
   unsigned i;

   for (i = 0; i < MUI_TEXTURE_LAST; i++)
   {
      struct texture_image ti     = {0};
      char path[PATH_MAX_LENGTH]  = {0};

      switch(i)
      {
         case MUI_TEXTURE_POINTER:
            fill_pathname_join(path, iconpath, "pointer.png",   sizeof(path));
            break;
         case MUI_TEXTURE_BACK:
            fill_pathname_join(path, iconpath, "back.png",   sizeof(path));
            break;
         case MUI_TEXTURE_SWITCH_ON:
            fill_pathname_join(path, iconpath, "on.png",   sizeof(path));
            break;
         case MUI_TEXTURE_SWITCH_OFF:
            fill_pathname_join(path, iconpath, "off.png",   sizeof(path));
            break;
         case MUI_TEXTURE_TAB_MAIN_ACTIVE:
            fill_pathname_join(path, iconpath, "main_tab_active.png",   sizeof(path));
            break;
         case MUI_TEXTURE_TAB_PLAYLISTS_ACTIVE:
            fill_pathname_join(path, iconpath, "playlists_tab_active.png",   sizeof(path));
            break;
         case MUI_TEXTURE_TAB_SETTINGS_ACTIVE:
            fill_pathname_join(path, iconpath, "settings_tab_active.png",   sizeof(path));
            break;
         case MUI_TEXTURE_TAB_MAIN_PASSIVE:
            fill_pathname_join(path, iconpath, "main_tab_passive.png",   sizeof(path));
            break;
         case MUI_TEXTURE_TAB_PLAYLISTS_PASSIVE:
            fill_pathname_join(path, iconpath, "playlists_tab_passive.png",   sizeof(path));
            break;
         case MUI_TEXTURE_TAB_SETTINGS_PASSIVE:
            fill_pathname_join(path, iconpath, "settings_tab_passive.png",   sizeof(path));
            break;
      }

      if (string_is_empty(path) || !path_file_exists(path))
         continue;

      texture_image_load(&ti, path);

      mui->textures.list[i].id   = menu_display_texture_load(&ti,
            TEXTURE_FILTER_MIPMAP_LINEAR);

      texture_image_free(&ti);
   }
}
コード例 #5
0
ファイル: task_file_transfer.c プロジェクト: chungy/RetroArch
static int cb_image_menu_boxart_upload(void *data, size_t len)
{
   nbio_handle_t *nbio = (nbio_handle_t*)data; 

   if (cb_image_menu_upload_generic(nbio) != 0)
      return -1;

   menu_driver_load_image(&nbio->image.ti, MENU_IMAGE_BOXART);

   texture_image_free(&nbio->image.ti);

   return 0;
}
コード例 #6
0
ファイル: gl_common.c プロジェクト: CautiousAlbino/RetroArch
bool gl_load_luts(const struct video_shader *shader,
      GLuint *textures_lut)
{
   unsigned i;
   unsigned num_luts = min(shader->luts, GFX_MAX_TEXTURES);

   if (!shader->luts)
      return true;

   glGenTextures(num_luts, textures_lut);

   for (i = 0; i < num_luts; i++)
   {
      struct texture_image img = {0};
      enum texture_filter_type filter_type = TEXTURE_FILTER_LINEAR;

      RARCH_LOG("Loading texture image from: \"%s\" ...\n",
            shader->lut[i].path);

      if (!texture_image_load(&img, shader->lut[i].path))
      {
         RARCH_ERR("Failed to load texture image from: \"%s\"\n",
               shader->lut[i].path);
         return false;
      }

      if (shader->lut[i].filter == RARCH_FILTER_NEAREST)
         filter_type = TEXTURE_FILTER_NEAREST;

      if (shader->lut[i].mipmap)
      {
         if (filter_type == TEXTURE_FILTER_NEAREST)
            filter_type = TEXTURE_FILTER_MIPMAP_NEAREST;
         else
            filter_type = TEXTURE_FILTER_MIPMAP_LINEAR;
      }

      gl_load_texture_data(textures_lut[i],
            shader->lut[i].wrap,
            filter_type, 4,
            img.width, img.height,
            img.pixels, sizeof(uint32_t));
      texture_image_free(&img);
   }

   glBindTexture(GL_TEXTURE_2D, 0);
   return true;
}
コード例 #7
0
ファイル: xdk_ctx.c プロジェクト: AbelFlos/RetroArch
static void gfx_ctx_xdk_destroy(void)
{
   xdk_d3d_video_t * d3d = (xdk_d3d_video_t*)driver.video_data;

#ifdef HAVE_RGUI
   texture_image_free(&d3d->rgui_texture);
#endif

   if (d3d->d3d_render_device)
   {
      d3d->d3d_render_device->Release();
      d3d->d3d_render_device = 0;
   }

   if (d3d->d3d_device)
   {
      d3d->d3d_device->Release();
      d3d->d3d_device = 0;
   }
}
コード例 #8
0
ファイル: rmenu.c プロジェクト: SAKUJ0/RetroArch
static void rmenu_context_destroy(void)
{
   texture_image_free(menu_texture);
}
コード例 #9
0
ファイル: rmenu.c プロジェクト: netux79/myra1002
static void rmenu_free_assets(void *data)
{
   texture_image_free(menu_texture);
   menu_texture_inited = false;
}
コード例 #10
0
ファイル: rmenu.c プロジェクト: jonakino/RetroArch
static void rmenu_context_destroy(void *data)
{
    texture_image_free(driver.video_data, menu_texture);
}