X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ftexture.cc;h=3aebec3fbd94b5b81febaf1f8b67300295eb82d9;hb=b30241a8a51be904b22459a1d0cc3322e0a505d9;hp=cbbd11dc455c7a0ca87ac8d579e128382293a8a8;hpb=017ce4cb4c27802eb620227fd822f5e4e03efa3b;p=laserbrain_demo diff --git a/src/texture.cc b/src/texture.cc index cbbd11d..3aebec3 100644 --- a/src/texture.cc +++ b/src/texture.cc @@ -1,6 +1,7 @@ #include #include #include "texture.h" +#include "datamap.h" #include "image.h" #include "opengl.h" #include "imago2.h" @@ -201,7 +202,6 @@ void Texture::create_default(TextureType type) pixels += 4; } } - default_img->save("/tmp/foo.png"); } switch(type) { @@ -468,17 +468,26 @@ TextureSet::TextureSet() { } -Texture *TextureSet::get_texture(const char *name, TextureType type) const +Texture *TextureSet::get_texture(const char *name, TextureType type, const DataMap *dmap) const { - std::map::const_iterator iter = data.find(name); + char *fname; + int nsize = dmap ? dmap->path_size(name) : 0; + if(nsize) { + fname = (char*)alloca(nsize); + dmap->lookup(name, fname, nsize); + } else { + fname = (char*)name; + } + + std::map::const_iterator iter = data.find(fname); if(iter != data.end()) { return iter->second; } Texture *res = create(); - data[name] = res; + data[fname] = res; res->create_default(type); - resman_lookup(rman, name, res); + resman_lookup(rman, fname, res); return res; }