static void zrmenu_context_reset_textures(zrmenu_handle_t *zr, const char *iconpath) { unsigned i; for (i = 0; i < ZR_TEXTURE_LAST; i++) { struct texture_image ti = {0}; char path[PATH_MAX_LENGTH] = {0}; switch(i) { case ZR_TEXTURE_POINTER: fill_pathname_join(path, iconpath, "pointer.png", sizeof(path)); break; } if (string_is_empty(path) || !path_file_exists(path)) continue; video_texture_image_load(&ti, path); video_driver_texture_load(&ti, TEXTURE_FILTER_MIPMAP_LINEAR, &zr->textures.list[i]); video_texture_image_free(&ti); } }
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; video_texture_image_load(&ti, path); mui->textures.list[i].id = menu_display_texture_load(&ti, TEXTURE_FILTER_MIPMAP_LINEAR); video_texture_image_free(&ti); } }
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 (!video_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)); video_texture_image_free(&img); } glBindTexture(GL_TEXTURE_2D, 0); return true; }