nuclear@11: #include nuclear@11: #include "opengl.h" nuclear@11: #include "imago2.h" nuclear@11: #include "texman.h" nuclear@11: #include "datapath.h" nuclear@11: nuclear@11: TextureSet::~TextureSet() nuclear@11: { nuclear@11: for(auto iter : textures) { nuclear@11: glDeleteTextures(1, &iter.second); nuclear@11: } nuclear@11: } nuclear@11: nuclear@11: unsigned int TextureSet::get_texture(const char *fname) const nuclear@11: { nuclear@11: auto iter = textures.find(fname); nuclear@11: if(iter != textures.end()) { nuclear@11: return iter->second; nuclear@11: } nuclear@11: nuclear@11: const char *path, *slash; nuclear@11: if((slash = strrchr(fname, '/'))) { nuclear@11: path = slash + 1; nuclear@11: } nuclear@11: path = datafile_path(path); nuclear@11: nuclear@11: printf("loading texture: %s\n", path); nuclear@11: unsigned int tex = img_gltexture_load(path); nuclear@11: if(tex) { nuclear@11: textures[fname] = tex; nuclear@11: } else { nuclear@11: fprintf(stderr, "failed to load texture: %s\n", path); nuclear@11: } nuclear@11: return tex; nuclear@11: }