mirror of
https://github.com/nzp-team/dquakeplus.git
synced 2025-01-31 19:50:35 +00:00
Convert Quake Palette assets to RGBA
This commit is contained in:
parent
519dccf106
commit
2c84da2295
3 changed files with 34 additions and 16 deletions
|
@ -25,6 +25,8 @@ extern "C"
|
|||
#include "../quakedef.h"
|
||||
}
|
||||
|
||||
#include <pspgu.h>
|
||||
|
||||
cvar_t jpeg_compression_level = {"jpeg_compression_level", "75"};
|
||||
|
||||
int image_width;
|
||||
|
@ -1085,3 +1087,28 @@ int loadtextureimage (char* filename, int matchwidth, int matchheight, qboolean
|
|||
|
||||
return texture_index;
|
||||
}
|
||||
|
||||
/*
|
||||
=============
|
||||
loadrgbafrompal
|
||||
=============
|
||||
*/
|
||||
|
||||
int loadrgbafrompal (char* name, int width, int height, byte* data)
|
||||
{
|
||||
int pixels = width * height;
|
||||
byte* rgbadata = (byte*)Q_malloc(pixels * 4);
|
||||
|
||||
for(int i = 0; i < pixels; i++) {
|
||||
byte palette_index = data[i];
|
||||
rgbadata[i * 4] = host_basepal[palette_index * 3 + 0];
|
||||
rgbadata[i * 4 + 1] = host_basepal[palette_index * 3 + 1];
|
||||
rgbadata[i * 4 + 2] = host_basepal[palette_index * 3 + 2];
|
||||
rgbadata[i * 4 + 3] = 255; // Set alpha to opaque
|
||||
}
|
||||
|
||||
int ret = GL_LoadImages(name, width, height, rgbadata, qtrue, GU_LINEAR, 0, 4);
|
||||
|
||||
free(rgbadata);
|
||||
return ret;
|
||||
}
|
|
@ -29,3 +29,4 @@ int Image_WritePNGPLTE (char *filename, int compression, byte *pixels, int width
|
|||
int Image_WriteJPEG (char *filename, int compression, byte *pixels, int width, int height);
|
||||
int Image_WritePCX (char *filename, byte *data, int width, int height, byte *palette);
|
||||
|
||||
int loadrgbafrompal (char* name, int width, int height, byte* data);
|
||||
|
|
|
@ -34,6 +34,7 @@ extern "C"
|
|||
|
||||
#include "video_hardware_fullbright.h"
|
||||
#include "video_hardware_hlmdl.h"
|
||||
#include "video_hardware_images.h"
|
||||
|
||||
#include <list>
|
||||
|
||||
|
@ -2304,22 +2305,11 @@ void *Mod_LoadAllSkins (int numskins, daliasskintype_t *pskintype)
|
|||
|
||||
{
|
||||
sprintf (name, "%s_%i", loadmodel->name, i);
|
||||
if(mod_h2)
|
||||
{
|
||||
pheader->gl_texturenum[i][0] =
|
||||
pheader->gl_texturenum[i][1] =
|
||||
pheader->gl_texturenum[i][2] =
|
||||
pheader->gl_texturenum[i][3] =
|
||||
GL_LoadPalTex (name, pheader->skinwidth, pheader->skinheight, (byte *)(pskintype + 1) , qtrue, GU_LINEAR, 0, NULL, PAL_H2);
|
||||
}
|
||||
else
|
||||
{
|
||||
pheader->gl_texturenum[i][0] =
|
||||
pheader->gl_texturenum[i][1] =
|
||||
pheader->gl_texturenum[i][2] =
|
||||
pheader->gl_texturenum[i][3] =
|
||||
GL_LoadTexture (name, pheader->skinwidth, pheader->skinheight, (byte *)(pskintype + 1) , qtrue, GU_LINEAR, 0);
|
||||
}
|
||||
|
||||
pheader->gl_texturenum[i][0] =
|
||||
pheader->gl_texturenum[i][1] =
|
||||
pheader->gl_texturenum[i][2] =
|
||||
pheader->gl_texturenum[i][3] = loadrgbafrompal(name, pheader->skinwidth, pheader->skinheight, (byte*)(pskintype+1));
|
||||
}
|
||||
pskintype = (daliasskintype_t *)((byte *)(pskintype+1) + s);
|
||||
/* Crow_bar Memory Leak Fixed One Work not used */
|
||||
|
|
Loading…
Reference in a new issue