X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=image.c;h=92bfd18e9cd98a670fdd225915dcca4d3f5b5721;hb=af73e1c67074f97ba3d3e82d2c75bfd97561259a;hp=c1615d4c4f3c31c9ac9e8115153a78350e023787;hpb=3f2bc4a392c209700360c90bcfcf826b135c898d;p=xonotic%2Fdarkplaces.git diff --git a/image.c b/image.c index c1615d4c..92bfd18e 100644 --- a/image.c +++ b/image.c @@ -565,7 +565,11 @@ void Image_StripImageExtension (const char *in, char *out) if ((end - in) >= 4) { temp = end - 4; - if (strcmp(temp, ".tga") == 0 || strcmp(temp, ".pcx") == 0 || strcmp(temp, ".lmp") == 0) + if (strcmp(temp, ".tga") == 0 + || strcmp(temp, ".pcx") == 0 + || strcmp(temp, ".lmp") == 0 + || strcmp(temp, ".png") == 0 + || strcmp(temp, ".jpg") == 0) end = temp; while (in < end) *out++ = *in++; @@ -600,6 +604,8 @@ qbyte *loadimagepixels (const char *filename, qboolean complain, int matchwidth, int i; qbyte *f, *data = NULL; char basename[MAX_QPATH], name[MAX_QPATH], *c; + if (developer_memorydebug.integer) + Mem_CheckSentinelsGlobal(); Image_StripImageExtension(filename, basename); // strip filename extensions to allow replacement by other types // replace *'s with #, so commandline utils don't get confused when dealing with the external files for (c = basename;*c;c++) @@ -612,6 +618,8 @@ qbyte *loadimagepixels (const char *filename, qboolean complain, int matchwidth, { Mem_Free(f); Con_DPrintf("loaded image %s (%dx%d)\n", name, image_width, image_height); + if (developer_memorydebug.integer) + Mem_CheckSentinelsGlobal(); return data; } } @@ -624,6 +632,8 @@ qbyte *loadimagepixels (const char *filename, qboolean complain, int matchwidth, Con_Printf (i == 0 ? "\"%s\"" : (imageformats[i+1].formatstring ? ", \"%s\"" : " or \"%s\".\n"), imageformats[i].formatstring); } } + if (developer_memorydebug.integer) + Mem_CheckSentinelsGlobal(); return NULL; } @@ -1385,7 +1395,7 @@ void Image_HeightmapToNormalmap(const unsigned char *inpixels, unsigned char *ou /* dv[0][0] = iwidth; dv[0][1] = 0; - dv[0][2] = ((p1[0] + p1[1] + p1[2]) * ibumpscale) - ((p0[0] + p0[1] + p0[2]) * ibumpscale); + dv[0][2] = ((p0[0] + p0[1] + p0[2]) * ibumpscale) - ((p1[0] + p1[1] + p1[2]) * ibumpscale); dv[1][0] = 0; dv[1][1] = iheight; dv[1][2] = ((p2[0] + p2[1] + p2[2]) * ibumpscale) - ((p0[0] + p0[1] + p0[2]) * ibumpscale); @@ -1393,14 +1403,14 @@ void Image_HeightmapToNormalmap(const unsigned char *inpixels, unsigned char *ou n[1] = dv[0][2]*dv[1][0]-dv[0][0]*dv[1][2]; n[2] = dv[0][0]*dv[1][1]-dv[0][1]*dv[1][0]; */ - n[0] = ((p0[0] + p0[1] + p0[2]) - (p1[0] + p1[1] + p1[2])); + n[0] = ((p1[0] + p1[1] + p1[2]) - (p0[0] + p0[1] + p0[2])); n[1] = ((p0[0] + p0[1] + p0[2]) - (p2[0] + p2[1] + p2[2])); n[2] = ibumpscale; VectorNormalize(n); /* // this should work for the bottom right triangle if anyone wants // code for that for some reason - n[0] = ((p1[0] + p1[1] + p1[2]) - (p3[0] + p3[1] + p3[2])); + n[0] = ((p3[0] + p3[1] + p3[2]) - (p1[0] + p1[1] + p1[2])); n[1] = ((p2[0] + p2[1] + p2[2]) - (p3[0] + p3[1] + p3[2])); n[2] = ibumpscale; VectorNormalize(n); @@ -1414,11 +1424,13 @@ void Image_HeightmapToNormalmap(const unsigned char *inpixels, unsigned char *ou } } -int image_loadskin(imageskin_t *s, char *name) +int image_loadskin(imageskin_t *s, char *shadername) { int j; qbyte *bumppixels; int bumppixels_width, bumppixels_height; + char name[MAX_QPATH]; + Image_StripImageExtension(shadername, name); memset(s, 0, sizeof(*s)); s->basepixels = loadimagepixels(name, false, 0, 0); if (s->basepixels == NULL)