/*
Copyright (C) 1997-2001 Id Software, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* Modifications
Copyright 2003-2004 Bytonic Software
Copyright 2010 Google Inc.
*/
package com.googlecode.gwtquake.shared.render;
import com.googlecode.gwtquake.shared.common.QuakeImage;
public class Image {
// used to get the pos in array
// added by cwei
private int id;
// quake 2 variables
public String name=""; // game path, including extension
// enum imagetype_t
public int type;
public int width, height; // source image
public int upload_width, upload_height; // after power of two and picmip
public int registration_sequence; // 0 = free
public Surface texturechain; // for sort-by-texture world drawing
public int texnum; // gl texture binding
public boolean has_alpha;
public boolean paletted;
public boolean complete;
public Image(int id) {
this.id = id;
}
public void setData(byte[] pic, int width, int height, int bits) {
width = width;
height = height;
complete = true;
int i;
if (type == QuakeImage.it_skin && bits == 8) {
Images.R_FloodFillSkin(pic, width, height);
}
//image.texnum = TEXNUM_IMAGES + image.getId(); //image pos in array
Images.GL_Bind(texnum);
if (bits == 8) {
has_alpha = Images.GL_Upload8(pic, width, height, (type != QuakeImage.it_pic && type != QuakeImage.it_sky), type == QuakeImage.it_sky);
}
else {
int[] tmp = QuakeImage.bytesToIntsAbgr(pic);
has_alpha = Images.GL_Upload32(tmp, width, height, (type != QuakeImage.it_pic && type != QuakeImage.it_sky));
}
upload_width = Images.upload_width; // after power of 2 and scales
upload_height = Images.upload_height;
}
public void clear() {
// don't clear the id
// wichtig !!!
name = "";
type = 0;
width = height = 0;
upload_width = upload_height = 0;
registration_sequence = 0; // 0 = free
texturechain = null;
texnum = 0; // gl texture binding
has_alpha = false;
paletted = false;
complete = false;
}
public int getId() {
return id;
}
public String toString() {
return name + ":" + texnum;
}
}