]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - image.c
Tomaz made cl_avidemo screenshot saving use no mallocs
[xonotic/darkplaces.git] / image.c
diff --git a/image.c b/image.c
index ec9d68590dd93dd55662bd08288592f00df71851..6b5dd6a1774631a11c58df6915d43abfadde81ea 100644 (file)
--- a/image.c
+++ b/image.c
@@ -32,7 +32,7 @@ void Image_CopyMux(qbyte *outpixels, const qbyte *inpixels, int inputwidth, int
                else
                {
                        for (y = 0, line = inpixels + row_ofs; y < inputheight; y++, line += row_inc)
-                               for (x = 0, in = line + col_ofs; x < inputwidth; x++, in += col_inc, outpixels += 3)
+                               for (x = 0, in = line + col_ofs; x < inputwidth; x++, in += col_inc, outpixels += numinputcomponents)
                                        for (c = 0; c < numoutputcomponents; c++)
                                                outpixels[c] = ((index = outputinputcomponentindices[c]) & 0x80000000) ? index : in[index];
                }
@@ -50,7 +50,7 @@ void Image_CopyMux(qbyte *outpixels, const qbyte *inpixels, int inputwidth, int
                else
                {
                        for (y = 0, line = inpixels + row_ofs; y < inputheight; y++, line += row_inc)
-                               for (x = 0, in = line + col_ofs; x < inputwidth; x++, in += col_inc, outpixels += 3)
+                               for (x = 0, in = line + col_ofs; x < inputwidth; x++, in += col_inc, outpixels += numinputcomponents)
                                        for (c = 0; c < numoutputcomponents; c++)
                                                outpixels[c] = in[outputinputcomponentindices[c]];
                }
@@ -853,14 +853,12 @@ rtexture_t *loadtextureimagebumpasnmap (rtexturepool_t *pool, const char *filena
        return rt;
 }
 
-qboolean Image_WriteTGARGB_preflipped (const char *filename, int width, int height, const qbyte *data)
+qboolean Image_WriteTGARGB_preflipped (const char *filename, int width, int height, const qbyte *data, qbyte *buffer)
 {
        qboolean ret;
-       qbyte *buffer, *out;
+       qbyte *out;
        const qbyte *in, *end;
 
-       buffer = Mem_Alloc(tempmempool, width*height*3 + 18);
-
        memset (buffer, 0, 18);
        buffer[2] = 2;          // uncompressed type
        buffer[12] = (width >> 0) & 0xFF;
@@ -881,7 +879,6 @@ qboolean Image_WriteTGARGB_preflipped (const char *filename, int width, int heig
        }
        ret = FS_WriteFile (filename, buffer, width*height*3 + 18 );
 
-       Mem_Free(buffer);
        return ret;
 }