com.kauridev.lunarfever.graphics.Texture.java Source code

Java tutorial

Introduction

Here is the source code for com.kauridev.lunarfever.graphics.Texture.java

Source

/*
 * This file is part of the lunar-fever package.
 *
 * Copyright (c) 2014 Eric Fritz
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
 * and associated documentation files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all copies or
 * substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

package com.kauridev.lunarfever.graphics;

import org.lwjgl.opengl.GL11;

/**
 * @author Eric Fritz
 */
public class Texture implements TextureInterface {
    private int id;
    private float width;
    private float height;

    public Texture(int id, float width, float height) {
        this.id = id;
        this.width = width;
        this.height = height;
    }

    public boolean valid() {
        return id != 0;
    }

    public void bind() {
        if (!valid()) {
            throw new IllegalStateException();
        }

        GL11.glBindTexture(GL11.GL_TEXTURE_2D, id);
    }

    public void dispose() {
        if (valid()) {
            GL11.glDeleteTextures(id);
            id = 0;
        }
    }

    @Override
    public Texture getTexture() {
        return this;
    }

    @Override
    public float getWidth() {
        return width;
    }

    @Override
    public float getHeight() {
        return height;
    }

    @Override
    public float getU() {
        return 0;
    }

    @Override
    public float getV() {
        return 0;
    }

    @Override
    public float getU2() {
        return 1;
    }

    @Override
    public float getV2() {
        return 1;
    }
}