static struct nk_image icon_load(const char *filename) { int x,y,n; GLuint tex; unsigned char *data = stbi_load(filename, &x, &y, &n, 0); if (!data) die("[SDL]: failed to load image: %s", filename); glGenTextures(1, &tex); glBindTexture(GL_TEXTURE_2D, tex); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, x, y, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); glGenerateMipmap(GL_TEXTURE_2D); stbi_image_free(data); return nk_image_id((int)tex); }
struct nk_image nk_common_image_load(const char *filename) { int x,y,n; struct texture_image ti; uintptr_t tex; ti.width = 0; ti.height = 0; ti.pixels = NULL; ti.supports_rgba = video_driver_supports_rgba(); image_texture_load(&ti, filename); if (!ti.pixels) printf("Failed to load image: %s\n", filename); video_driver_texture_load(&ti, TEXTURE_FILTER_MIPMAP_NEAREST, &tex); image_texture_free(&ti); return nk_image_id((int)tex); }