com.badlogic.gdx.graphics.TextureDict Maven / Gradle / Ivy
The newest version!
/*******************************************************************************
* Copyright 2011 See AUTHORS file.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package com.badlogic.gdx.graphics;
import com.badlogic.gdx.Files.FileType;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.Texture.TextureFilter;
import com.badlogic.gdx.graphics.Texture.TextureWrap;
import com.badlogic.gdx.utils.ObjectMap;
/**
* A texture dictionary is used to track the usage of your textures and supply a single point of access for texture resources. It
* stores {@link TextureRef}s by their path. If you need to load the same texture in different parts of your application it will
* only be loaded into memory once by the dictionary.
*
* @deprecated
* @author Dave Clayton */
public class TextureDict {
private static ObjectMap sDictionary = new ObjectMap();
/** Loads a new texture into the dictionary as a reference counted {@link TextureRef}.
* @param path the path to the texture image.
* @return the {@TextureRef} representing the texture. */
public static TextureRef loadTexture (String path) {
return loadTexture(path, TextureFilter.MipMap, TextureFilter.Linear, TextureWrap.ClampToEdge, TextureWrap.ClampToEdge);
}
/** Loads a new texture into the dictionary as a reference counted {@link TextureRef}.
* @param path the path to the texture image.
* @param minFilter minFilter {@link TextureFilter}.
* @param magFilter magFilter {@link TextureFilter}.
* @param uwrap u-wrapping.
* @param vwrap v-wrapping.
* @return the {@TextureRef} representing the texture. */
public static TextureRef loadTexture (String path, TextureFilter minFilter, TextureFilter magFilter, TextureWrap uwrap,
TextureWrap vwrap) {
if (sDictionary.containsKey(path)) {
TextureRef ref = sDictionary.get(path);
ref.addRef();
return ref;
}
// load new texture
FileHandle texFile = Gdx.app.getFiles().getFileHandle(path, FileType.Internal);
Texture newTex = new Texture(texFile, minFilter.isMipMap() || magFilter.isMipMap() ? true : false);
newTex.setFilter(minFilter, magFilter);
newTex.setWrap(uwrap, vwrap);
TextureRef ref = new TextureRef(path, newTex);
sDictionary.put(path, ref);
return ref;
}
/** Removes a texture from the dictionary. In general you should probably not use this - use {@link TextureRef#unload()}
* instead.
* @param path to the texture. */
public static void removeTexture (String path) {
sDictionary.remove(path);
}
/** Unloads all of the currently managed textures. */
public static void unloadAll () {
for (TextureRef tex : sDictionary.values()) {
tex.dispose();
}
sDictionary.clear();
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy