/******************************************************************************* * 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; /** * <p> * A reference counted wrapper for a {@link Texture}. TextureRefs are managed by the {@link TextureDict}. * </p> * * @deprecated * @author Dave Clayton <contact@redskyforge.com> */ public class TextureRef { public String Name; private int mRefCount; private Texture mTexture; /** * Create a new TextureRef with the given name and texture. * * @param name * The texture's name, typically its filesystem path. * @param texture * The texture it reference counts. */ public TextureRef(String name, Texture texture) { Name = name; mTexture = texture; mRefCount = 1; } /** Adds a reference to the texture. */ public void addRef() { mRefCount++; } /** * Removes a reference to the texture. If the internal reference count reaches 0, the texture is disposed. * * @return the new reference count. */ public int unload() { if (--mRefCount == 0) { mTexture.dispose(); mTexture = null; // Note: This doesn't seem the best way to do this, but it works. Re-factoring welcome :) TextureDict.removeTexture(Name); } return mRefCount; } public void dispose() { mTexture.dispose(); } /** Binds the texture in OpenGL. */ public void bind() { mTexture.bind(); } /** * Gets the wrapped texture. * * @return the texture. */ public Texture get() { return mTexture; } }