enum ImageType
This commit is contained in:
12
src/main/java/dmx/lwjake2/render/ImageType.java
Normal file
12
src/main/java/dmx/lwjake2/render/ImageType.java
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package dmx.lwjake2.render;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
public enum ImageType {
|
||||||
|
SKIN,
|
||||||
|
SPRITE,
|
||||||
|
WALL,
|
||||||
|
PICTURE,
|
||||||
|
SKY
|
||||||
|
}
|
||||||
@@ -18,8 +18,11 @@
|
|||||||
|
|
||||||
package lwjake2.render;
|
package lwjake2.render;
|
||||||
|
|
||||||
|
import dmx.lwjake2.render.ImageType;
|
||||||
import lwjake2.Defines;
|
import lwjake2.Defines;
|
||||||
|
|
||||||
|
import static dmx.lwjake2.render.ImageType.SKIN;
|
||||||
|
|
||||||
public class image_t {
|
public class image_t {
|
||||||
|
|
||||||
public static final int MAX_NAME_SIZE = Defines.MAX_QPATH;
|
public static final int MAX_NAME_SIZE = Defines.MAX_QPATH;
|
||||||
@@ -30,8 +33,8 @@ public class image_t {
|
|||||||
|
|
||||||
// quake 2 variables
|
// quake 2 variables
|
||||||
public String name=""; // game path, including extension
|
public String name=""; // game path, including extension
|
||||||
// enum imagetype_t
|
|
||||||
public int type;
|
public ImageType type;
|
||||||
public int width, height; // source image
|
public int width, height; // source image
|
||||||
public int upload_width, upload_height; // after power of two and picmip
|
public int upload_width, upload_height; // after power of two and picmip
|
||||||
public int registration_sequence; // 0 = free
|
public int registration_sequence; // 0 = free
|
||||||
@@ -51,7 +54,7 @@ public class image_t {
|
|||||||
// don't clear the id
|
// don't clear the id
|
||||||
// wichtig !!!
|
// wichtig !!!
|
||||||
name = "";
|
name = "";
|
||||||
type = 0;
|
type = SKIN;
|
||||||
width = height = 0;
|
width = height = 0;
|
||||||
upload_width = upload_height = 0;
|
upload_width = upload_height = 0;
|
||||||
registration_sequence = 0; // 0 = free
|
registration_sequence = 0; // 0 = free
|
||||||
|
|||||||
@@ -46,16 +46,6 @@ public abstract class Base extends LWJGLBase {
|
|||||||
*
|
*
|
||||||
* model skin sprite frame wall texture pic
|
* model skin sprite frame wall texture pic
|
||||||
*/
|
*/
|
||||||
// enum imagetype_t
|
|
||||||
static final int it_skin = 0;
|
|
||||||
|
|
||||||
static final int it_sprite = 1;
|
|
||||||
|
|
||||||
static final int it_wall = 2;
|
|
||||||
|
|
||||||
static final int it_pic = 3;
|
|
||||||
|
|
||||||
static final int it_sky = 4;
|
|
||||||
|
|
||||||
// enum modtype_t
|
// enum modtype_t
|
||||||
static final int mod_bad = 0;
|
static final int mod_bad = 0;
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
package lwjake2.render.lwjgl;
|
package lwjake2.render.lwjgl;
|
||||||
|
|
||||||
|
import dmx.lwjake2.render.ImageType;
|
||||||
import lwjake2.Defines;
|
import lwjake2.Defines;
|
||||||
import lwjake2.ErrorCode;
|
import lwjake2.ErrorCode;
|
||||||
import lwjake2.client.VID;
|
import lwjake2.client.VID;
|
||||||
@@ -31,6 +32,8 @@ import java.nio.IntBuffer;
|
|||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import static dmx.lwjake2.render.ImageType.PICTURE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Draw
|
* Draw
|
||||||
* (gl_draw.c)
|
* (gl_draw.c)
|
||||||
@@ -46,7 +49,7 @@ public abstract class Draw extends Image {
|
|||||||
*/
|
*/
|
||||||
void Draw_InitLocal() {
|
void Draw_InitLocal() {
|
||||||
// load console characters (don't bilerp characters)
|
// load console characters (don't bilerp characters)
|
||||||
draw_chars = GL_FindImage("pics/conchars.pcx", it_pic);
|
draw_chars = GL_FindImage("pics/conchars.pcx", PICTURE);
|
||||||
GL_Bind(draw_chars.texnum);
|
GL_Bind(draw_chars.texnum);
|
||||||
GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST);
|
GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST);
|
||||||
GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
|
GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
|
||||||
@@ -103,9 +106,9 @@ public abstract class Draw extends Image {
|
|||||||
if (!name.startsWith("/") && !name.startsWith("\\"))
|
if (!name.startsWith("/") && !name.startsWith("\\"))
|
||||||
{
|
{
|
||||||
fullname = "pics/" + name + ".pcx";
|
fullname = "pics/" + name + ".pcx";
|
||||||
image = GL_FindImage(fullname, it_pic);
|
image = GL_FindImage(fullname, PICTURE);
|
||||||
} else {
|
} else {
|
||||||
image = GL_FindImage(name.substring(1), it_pic);
|
image = GL_FindImage(name.substring(1), PICTURE);
|
||||||
}
|
}
|
||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
package lwjake2.render.lwjgl;
|
package lwjake2.render.lwjgl;
|
||||||
|
|
||||||
|
import dmx.lwjake2.render.ImageType;
|
||||||
import lwjake2.Defines;
|
import lwjake2.Defines;
|
||||||
import lwjake2.ErrorCode;
|
import lwjake2.ErrorCode;
|
||||||
import dmx.lwjake2.UnpackLoader;
|
import dmx.lwjake2.UnpackLoader;
|
||||||
@@ -44,6 +45,8 @@ import org.lwjgl.opengl.ARBMultitexture;
|
|||||||
import org.lwjgl.opengl.EXTSharedTexturePalette;
|
import org.lwjgl.opengl.EXTSharedTexturePalette;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import static dmx.lwjake2.render.ImageType.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image
|
* Image
|
||||||
*
|
*
|
||||||
@@ -260,7 +263,7 @@ public abstract class Image extends Main {
|
|||||||
for (i = 0; i < numgltextures; i++) {
|
for (i = 0; i < numgltextures; i++) {
|
||||||
glt = gltextures[i];
|
glt = gltextures[i];
|
||||||
|
|
||||||
if (glt.type != it_pic && glt.type != it_sky) {
|
if (glt.type != PICTURE && glt.type != SKY) {
|
||||||
GL_Bind(glt.texnum);
|
GL_Bind(glt.texnum);
|
||||||
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, gl_filter_min);
|
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, gl_filter_min);
|
||||||
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, gl_filter_max);
|
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, gl_filter_max);
|
||||||
@@ -330,16 +333,16 @@ public abstract class Image extends Main {
|
|||||||
|
|
||||||
texels += image.upload_width * image.upload_height;
|
texels += image.upload_width * image.upload_height;
|
||||||
switch (image.type) {
|
switch (image.type) {
|
||||||
case it_skin :
|
case SKIN:
|
||||||
VID.Printf(Defines.PRINT_ALL, "M");
|
VID.Printf(Defines.PRINT_ALL, "M");
|
||||||
break;
|
break;
|
||||||
case it_sprite :
|
case SPRITE:
|
||||||
VID.Printf(Defines.PRINT_ALL, "S");
|
VID.Printf(Defines.PRINT_ALL, "S");
|
||||||
break;
|
break;
|
||||||
case it_wall :
|
case WALL:
|
||||||
VID.Printf(Defines.PRINT_ALL, "W");
|
VID.Printf(Defines.PRINT_ALL, "W");
|
||||||
break;
|
break;
|
||||||
case it_pic :
|
case PICTURE:
|
||||||
VID.Printf(Defines.PRINT_ALL, "P");
|
VID.Printf(Defines.PRINT_ALL, "P");
|
||||||
break;
|
break;
|
||||||
default :
|
default :
|
||||||
@@ -1305,7 +1308,7 @@ public abstract class Image extends Main {
|
|||||||
This is also used as an entry point for the generated r_notexture
|
This is also used as an entry point for the generated r_notexture
|
||||||
================
|
================
|
||||||
*/
|
*/
|
||||||
image_t GL_LoadPic(String name, byte[] pic, int width, int height, int type, int bits) {
|
image_t GL_LoadPic(String name, byte[] pic, int width, int height, ImageType type, int bits) {
|
||||||
image_t image;
|
image_t image;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@@ -1337,11 +1340,11 @@ public abstract class Image extends Main {
|
|||||||
image.type = type;
|
image.type = type;
|
||||||
|
|
||||||
|
|
||||||
if (type == it_skin && bits == 8)
|
if (image.type == SKIN && bits == 8)
|
||||||
R_FloodFillSkin(pic, width, height);
|
R_FloodFillSkin(pic, width, height);
|
||||||
|
|
||||||
// load little pics into the scrap
|
// load little pics into the scrap
|
||||||
if (image.type == it_pic && bits == 8 && image.width < 64 && image.height < 64) {
|
if (image.type == PICTURE && bits == 8 && image.width < 64 && image.height < 64) {
|
||||||
pos_t pos = new pos_t(0, 0);
|
pos_t pos = new pos_t(0, 0);
|
||||||
int j, k;
|
int j, k;
|
||||||
|
|
||||||
@@ -1356,7 +1359,7 @@ public abstract class Image extends Main {
|
|||||||
GL_Bind(image.texnum);
|
GL_Bind(image.texnum);
|
||||||
|
|
||||||
image.has_alpha =
|
image.has_alpha =
|
||||||
GL_Upload8(pic, width, height, (image.type != it_pic && image.type != it_sky), image.type == it_sky);
|
GL_Upload8(pic, width, height, (image.type != PICTURE && image.type != SKY), image.type == SKY);
|
||||||
|
|
||||||
image.upload_width = upload_width; // after power of 2 and scales
|
image.upload_width = upload_width; // after power of 2 and scales
|
||||||
image.upload_height = upload_height;
|
image.upload_height = upload_height;
|
||||||
@@ -1395,7 +1398,7 @@ public abstract class Image extends Main {
|
|||||||
GL_Bind(image.texnum);
|
GL_Bind(image.texnum);
|
||||||
|
|
||||||
if (bits == 8) {
|
if (bits == 8) {
|
||||||
image.has_alpha = GL_Upload8(pic, width, height, (image.type != it_pic && image.type != it_sky), image.type == it_sky);
|
image.has_alpha = GL_Upload8(pic, width, height, (image.type != PICTURE && image.type != SKY), image.type == SKY);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
int[] tmp = new int[pic.length / 4];
|
int[] tmp = new int[pic.length / 4];
|
||||||
@@ -1407,7 +1410,7 @@ public abstract class Image extends Main {
|
|||||||
tmp[i] |= ((pic[4 * i + 3] & 0xFF) << 24); // & 0xFF000000;
|
tmp[i] |= ((pic[4 * i + 3] & 0xFF) << 24); // & 0xFF000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
image.has_alpha = GL_Upload32(tmp, width, height, (image.type != it_pic && image.type != it_sky));
|
image.has_alpha = GL_Upload32(tmp, width, height, (image.type != PICTURE && image.type != SKY));
|
||||||
}
|
}
|
||||||
image.upload_width = upload_width; // after power of 2 and scales
|
image.upload_width = upload_width; // after power of 2 and scales
|
||||||
image.upload_height = upload_height;
|
image.upload_height = upload_height;
|
||||||
@@ -1440,7 +1443,7 @@ public abstract class Image extends Main {
|
|||||||
byte[] pix = new byte[mt.width * mt.height];
|
byte[] pix = new byte[mt.width * mt.height];
|
||||||
System.arraycopy(raw, mt.offsets[0], pix, 0, pix.length);
|
System.arraycopy(raw, mt.offsets[0], pix, 0, pix.length);
|
||||||
|
|
||||||
image = GL_LoadPic(name, pix, mt.width, mt.height, it_wall, 8);
|
image = GL_LoadPic(name, pix, mt.width, mt.height, WALL, 8);
|
||||||
|
|
||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
@@ -1452,7 +1455,7 @@ public abstract class Image extends Main {
|
|||||||
Finds or loads the given image
|
Finds or loads the given image
|
||||||
===============
|
===============
|
||||||
*/
|
*/
|
||||||
image_t GL_FindImage(String name, int type) {
|
image_t GL_FindImage(String name, ImageType type) {
|
||||||
image_t image;
|
image_t image;
|
||||||
|
|
||||||
// // TODO loest das grossschreibungs problem
|
// // TODO loest das grossschreibungs problem
|
||||||
@@ -1517,7 +1520,7 @@ public abstract class Image extends Main {
|
|||||||
===============
|
===============
|
||||||
*/
|
*/
|
||||||
protected image_t R_RegisterSkin(String name) {
|
protected image_t R_RegisterSkin(String name) {
|
||||||
return GL_FindImage(name, it_skin);
|
return GL_FindImage(name, SKIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
IntBuffer texnumBuffer=BufferUtils.createIntBuffer(1);
|
IntBuffer texnumBuffer=BufferUtils.createIntBuffer(1);
|
||||||
@@ -1547,7 +1550,7 @@ public abstract class Image extends Main {
|
|||||||
if (image.registration_sequence == 0)
|
if (image.registration_sequence == 0)
|
||||||
continue;
|
continue;
|
||||||
// don't free pics
|
// don't free pics
|
||||||
if (image.type == it_pic)
|
if (image.type == PICTURE)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// free it
|
// free it
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
package lwjake2.render.lwjgl;
|
package lwjake2.render.lwjgl;
|
||||||
|
|
||||||
|
import dmx.lwjake2.render.ImageType;
|
||||||
import lwjake2.Defines;
|
import lwjake2.Defines;
|
||||||
import lwjake2.Globals;
|
import lwjake2.Globals;
|
||||||
import lwjake2.client.VID;
|
import lwjake2.client.VID;
|
||||||
@@ -37,6 +38,9 @@ import org.lwjgl.opengl.EXTSharedTexturePalette;
|
|||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
import org.lwjgl.opengl.GL12;
|
import org.lwjgl.opengl.GL12;
|
||||||
|
|
||||||
|
import static dmx.lwjake2.render.ImageType.SPRITE;
|
||||||
|
import static dmx.lwjake2.render.ImageType.WALL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Misc
|
* Misc
|
||||||
*
|
*
|
||||||
@@ -81,7 +85,7 @@ public abstract class Misc extends Mesh {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
r_particletexture = GL_LoadPic("***particle***", data, 8, 8, it_sprite, 32);
|
r_particletexture = GL_LoadPic("***particle***", data, 8, 8, SPRITE, 32);
|
||||||
|
|
||||||
//
|
//
|
||||||
// also use this for bad textures, but without alpha
|
// also use this for bad textures, but without alpha
|
||||||
@@ -96,7 +100,7 @@ public abstract class Misc extends Mesh {
|
|||||||
data[y * 32 + x * 4 + 3] = (byte)255;
|
data[y * 32 + x * 4 + 3] = (byte)255;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
r_notexture = GL_LoadPic("***r_notexture***", data, 8, 8, it_wall, 32);
|
r_notexture = GL_LoadPic("***r_notexture***", data, 8, 8, WALL, 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
// /*
|
// /*
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
package lwjake2.render.lwjgl;
|
package lwjake2.render.lwjgl;
|
||||||
|
|
||||||
|
import dmx.lwjake2.render.ImageType;
|
||||||
import lwjake2.Defines;
|
import lwjake2.Defines;
|
||||||
import lwjake2.ErrorCode;
|
import lwjake2.ErrorCode;
|
||||||
import lwjake2.client.VID;
|
import lwjake2.client.VID;
|
||||||
@@ -49,6 +50,8 @@ import java.util.Vector;
|
|||||||
|
|
||||||
import org.lwjgl.BufferUtils;
|
import org.lwjgl.BufferUtils;
|
||||||
|
|
||||||
|
import static dmx.lwjake2.render.ImageType.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Model
|
* Model
|
||||||
*
|
*
|
||||||
@@ -546,7 +549,7 @@ public abstract class Model extends Surf {
|
|||||||
|
|
||||||
name = "textures/" + in.texture + ".wal";
|
name = "textures/" + in.texture + ".wal";
|
||||||
|
|
||||||
out[i].image = GL_FindImage(name, it_wall);
|
out[i].image = GL_FindImage(name, WALL);
|
||||||
if (out[i].image == null) {
|
if (out[i].image == null) {
|
||||||
VID.Printf(Defines.PRINT_ALL, "Couldn't load " + name + '\n');
|
VID.Printf(Defines.PRINT_ALL, "Couldn't load " + name + '\n');
|
||||||
out[i].image = r_notexture;
|
out[i].image = r_notexture;
|
||||||
@@ -1108,7 +1111,7 @@ public abstract class Model extends Surf {
|
|||||||
if (n > -1) {
|
if (n > -1) {
|
||||||
skinNames[i] = skinNames[i].substring(0, n);
|
skinNames[i] = skinNames[i].substring(0, n);
|
||||||
}
|
}
|
||||||
mod.skins[i] = GL_FindImage(skinNames[i], it_skin);
|
mod.skins[i] = GL_FindImage(skinNames[i], SKIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
// set the model arrays
|
// set the model arrays
|
||||||
@@ -1157,7 +1160,7 @@ public abstract class Model extends Surf {
|
|||||||
|
|
||||||
for (int i=0 ; i<sprout.numframes ; i++)
|
for (int i=0 ; i<sprout.numframes ; i++)
|
||||||
{
|
{
|
||||||
mod.skins[i] = GL_FindImage(sprout.frames[i].name, it_sprite);
|
mod.skins[i] = GL_FindImage(sprout.frames[i].name, SPRITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
mod.type = mod_sprite;
|
mod.type = mod_sprite;
|
||||||
@@ -1219,13 +1222,13 @@ public abstract class Model extends Surf {
|
|||||||
{
|
{
|
||||||
sprout = (qfiles.dsprite_t)mod.extradata;
|
sprout = (qfiles.dsprite_t)mod.extradata;
|
||||||
for (i=0 ; i<sprout.numframes ; i++)
|
for (i=0 ; i<sprout.numframes ; i++)
|
||||||
mod.skins[i] = GL_FindImage(sprout.frames[i].name, it_sprite);
|
mod.skins[i] = GL_FindImage(sprout.frames[i].name, SPRITE);
|
||||||
}
|
}
|
||||||
else if (mod.type == mod_alias)
|
else if (mod.type == mod_alias)
|
||||||
{
|
{
|
||||||
pheader = (qfiles.dmdl_t)mod.extradata;
|
pheader = (qfiles.dmdl_t)mod.extradata;
|
||||||
for (i=0 ; i<pheader.num_skins ; i++)
|
for (i=0 ; i<pheader.num_skins ; i++)
|
||||||
mod.skins[i] = GL_FindImage(pheader.skinNames[i], it_skin);
|
mod.skins[i] = GL_FindImage(pheader.skinNames[i], SKIN);
|
||||||
// PGM
|
// PGM
|
||||||
mod.numframes = pheader.num_frames;
|
mod.numframes = pheader.num_frames;
|
||||||
// PGM
|
// PGM
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
package lwjake2.render.lwjgl;
|
package lwjake2.render.lwjgl;
|
||||||
|
|
||||||
|
import dmx.lwjake2.render.ImageType;
|
||||||
import lwjake2.Defines;
|
import lwjake2.Defines;
|
||||||
import lwjake2.ErrorCode;
|
import lwjake2.ErrorCode;
|
||||||
import lwjake2.Globals;
|
import lwjake2.Globals;
|
||||||
@@ -30,6 +31,8 @@ import lwjake2.util.Vec3Cache;
|
|||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import static dmx.lwjake2.render.ImageType.SKY;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Warp
|
* Warp
|
||||||
*
|
*
|
||||||
@@ -693,7 +696,7 @@ public abstract class Warp extends Model {
|
|||||||
pathname = "env/" + skyname + suf[i] + ".tga";
|
pathname = "env/" + skyname + suf[i] + ".tga";
|
||||||
}
|
}
|
||||||
|
|
||||||
sky_images[i] = GL_FindImage(pathname, it_sky);
|
sky_images[i] = GL_FindImage(pathname, SKY);
|
||||||
|
|
||||||
if (sky_images[i] == null)
|
if (sky_images[i] == null)
|
||||||
sky_images[i] = r_notexture;
|
sky_images[i] = r_notexture;
|
||||||
|
|||||||
Reference in New Issue
Block a user