'dir textures/*/*.wal' can now show previews.
This commit is contained in:
parent
3da900073e
commit
fd387f3e99
2 changed files with 42 additions and 1 deletions
|
@ -7516,6 +7516,46 @@ qbyte *ReadRawImageFile(qbyte *buf, int len, int *width, int *height, uploadfmt_
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef Q2BSPS
|
||||||
|
if (len >= sizeof(q2miptex_t)) //.lmp has no magic id. guess at it.
|
||||||
|
{
|
||||||
|
const q2miptex_t *wal = (const q2miptex_t *)buf;
|
||||||
|
size_t w = LittleLong(wal->width), h = LittleLong(wal->height);
|
||||||
|
size_t sz = sizeof(*wal) +
|
||||||
|
(w>>0)*(h>>0) +
|
||||||
|
(w>>1)*(h>>1) +
|
||||||
|
(w>>2)*(h>>2) +
|
||||||
|
(w>>3)*(h>>3);
|
||||||
|
if (sz == len)
|
||||||
|
{
|
||||||
|
if (force_rgba8)
|
||||||
|
{
|
||||||
|
qboolean foundalpha = false;
|
||||||
|
qbyte *in = buf+sizeof(*wal);
|
||||||
|
data = BZ_Malloc(w * h * sizeof(int));
|
||||||
|
for (i = 0; i < w * h; i++)
|
||||||
|
{
|
||||||
|
// if (in[i] == 255)
|
||||||
|
// foundalpha = true;
|
||||||
|
((unsigned int*)data)[i] = d_8to24rgbtable[in[i]];
|
||||||
|
}
|
||||||
|
*width = w;
|
||||||
|
*height = h;
|
||||||
|
*format = foundalpha?PTI_RGBA8:PTI_RGBX8;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
data = BZ_Malloc(w * h);
|
||||||
|
memcpy(data, buf+sizeof(*wal), w*h);
|
||||||
|
*width = w;
|
||||||
|
*height = h;
|
||||||
|
*format = TF_SOLID8;
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
TRACE(("dbg: Read32BitImageFile: life sucks\n"));
|
TRACE(("dbg: Read32BitImageFile: life sucks\n"));
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -1585,7 +1585,8 @@ static int QDECL COM_Dir_List(const char *name, qofs_t size, time_t mtime, void
|
||||||
else if (!Q_strcasecmp(ext, "tga") || !Q_strcasecmp(ext, "png") || !Q_strcasecmp(ext, "jpg") || !Q_strcasecmp(ext, "jpeg")|| !Q_strcasecmp(ext, "lmp") || !Q_strcasecmp(ext, "ico") ||
|
else if (!Q_strcasecmp(ext, "tga") || !Q_strcasecmp(ext, "png") || !Q_strcasecmp(ext, "jpg") || !Q_strcasecmp(ext, "jpeg")|| !Q_strcasecmp(ext, "lmp") || !Q_strcasecmp(ext, "ico") ||
|
||||||
!Q_strcasecmp(ext, "pcx") || !Q_strcasecmp(ext, "bmp") || !Q_strcasecmp(ext, "dds") || !Q_strcasecmp(ext, "ktx") || !Q_strcasecmp(ext, "ktx2")|| !Q_strcasecmp(ext, "vtf") ||
|
!Q_strcasecmp(ext, "pcx") || !Q_strcasecmp(ext, "bmp") || !Q_strcasecmp(ext, "dds") || !Q_strcasecmp(ext, "ktx") || !Q_strcasecmp(ext, "ktx2")|| !Q_strcasecmp(ext, "vtf") ||
|
||||||
!Q_strcasecmp(ext, "astc")|| !Q_strcasecmp(ext, "htga")|| !Q_strcasecmp(ext, "exr") || !Q_strcasecmp(ext, "xcf") || !Q_strcasecmp(ext, "psd") || !Q_strcasecmp(ext, "iwi") ||
|
!Q_strcasecmp(ext, "astc")|| !Q_strcasecmp(ext, "htga")|| !Q_strcasecmp(ext, "exr") || !Q_strcasecmp(ext, "xcf") || !Q_strcasecmp(ext, "psd") || !Q_strcasecmp(ext, "iwi") ||
|
||||||
!Q_strcasecmp(ext, "pbm") || !Q_strcasecmp(ext, "ppm") || !Q_strcasecmp(ext, "pgm") || !Q_strcasecmp(ext, "pam") || !Q_strcasecmp(ext, "pfm") || !Q_strcasecmp(ext, "hdr") )
|
!Q_strcasecmp(ext, "pbm") || !Q_strcasecmp(ext, "ppm") || !Q_strcasecmp(ext, "pgm") || !Q_strcasecmp(ext, "pam") || !Q_strcasecmp(ext, "pfm") || !Q_strcasecmp(ext, "hdr") ||
|
||||||
|
!Q_strcasecmp(ext, "wal") )
|
||||||
{
|
{
|
||||||
//FIXME: image replacements are getting in the way here.
|
//FIXME: image replacements are getting in the way here.
|
||||||
Q_snprintfz(link, sizeof(link), "\\tiprawimg\\%s\\tip\\(note: image replacement rules are context-dependant, including base path, sub path, extension, or complete replacement via a shader)", name);
|
Q_snprintfz(link, sizeof(link), "\\tiprawimg\\%s\\tip\\(note: image replacement rules are context-dependant, including base path, sub path, extension, or complete replacement via a shader)", name);
|
||||||
|
|
Loading…
Reference in a new issue