Sha256: 347514daf94fba7de4db68787b677e26bf6040ff8bf76dcf956a545617709b0c
Contents?: true
Size: 1.53 KB
Versions: 4
Compression:
Stored size: 1.53 KB
Contents
package org.sunflow.core; import java.util.HashMap; import org.sunflow.system.UI; import org.sunflow.system.UI.Module; /** * Maintains a cache of all loaded texture maps. This is usefull if the same * texture might be used more than once in your scene. */ public final class TextureCache { private static HashMap<String, Texture> textures = new HashMap<String, Texture>(); private TextureCache() { } /** * Gets a reference to the texture specified by the given filename. If the * texture has already been loaded the previous reference is returned, * otherwise, a new texture is created. * * @param filename image file to load * @param isLinear is the texture gamma corrected? * @return texture object * @see Texture */ public synchronized static Texture getTexture(String filename, boolean isLinear) { if (textures.containsKey(filename)) { UI.printInfo(Module.TEX, "Using cached copy for file \"%s\" ...", filename); return textures.get(filename); } UI.printInfo(Module.TEX, "Using file \"%s\" ...", filename); Texture t = new Texture(filename, isLinear); textures.put(filename, t); return t; } /** * Flush all textures from the cache, this will cause them to be reloaded * anew the next time they are accessed. */ public synchronized static void flush() { UI.printInfo(Module.TEX, "Flushing texture cache"); textures.clear(); } }
Version data entries
4 entries across 4 versions & 1 rubygems