📄 texturecache.java
字号:
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();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -