dungeon_crawler

annotate prototype/src/texman.cc @ 41:acfe0c0110fc

- cleaned up the renderer - implemented fallback (non-deferred renderer)
author John Tsiombikas <nuclear@member.fsf.org>
date Thu, 30 Aug 2012 05:35:00 +0300
parents
children 3fef65352b0b
rev   line source
nuclear@11 1 #include <string.h>
nuclear@11 2 #include "opengl.h"
nuclear@11 3 #include "imago2.h"
nuclear@11 4 #include "texman.h"
nuclear@11 5 #include "datapath.h"
nuclear@11 6
nuclear@11 7 TextureSet::~TextureSet()
nuclear@11 8 {
nuclear@11 9 for(auto iter : textures) {
nuclear@11 10 glDeleteTextures(1, &iter.second);
nuclear@11 11 }
nuclear@11 12 }
nuclear@11 13
nuclear@11 14 unsigned int TextureSet::get_texture(const char *fname) const
nuclear@11 15 {
nuclear@11 16 auto iter = textures.find(fname);
nuclear@11 17 if(iter != textures.end()) {
nuclear@11 18 return iter->second;
nuclear@11 19 }
nuclear@11 20
nuclear@11 21 const char *path, *slash;
nuclear@11 22 if((slash = strrchr(fname, '/'))) {
nuclear@11 23 path = slash + 1;
nuclear@11 24 }
nuclear@11 25 path = datafile_path(path);
nuclear@11 26
nuclear@11 27 printf("loading texture: %s\n", path);
nuclear@11 28 unsigned int tex = img_gltexture_load(path);
nuclear@11 29 if(tex) {
nuclear@11 30 textures[fname] = tex;
nuclear@11 31 } else {
nuclear@11 32 fprintf(stderr, "failed to load texture: %s\n", path);
nuclear@11 33 }
nuclear@11 34 return tex;
nuclear@11 35 }