From 0167e9140e2a732c2267bdc4672ecd0360d49227 Mon Sep 17 00:00:00 2001 From: archshift Date: Sat, 6 Sep 2014 20:04:13 -0700 Subject: [PATCH] utils: cleaned up DumpTGA, removing redundancies --- src/video_core/utils.cpp | 32 ++++++++++++-------------------- src/video_core/utils.h | 2 +- 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/src/video_core/utils.cpp b/src/video_core/utils.cpp index b94376ac12..c1848f923a 100644 --- a/src/video_core/utils.cpp +++ b/src/video_core/utils.cpp @@ -8,6 +8,7 @@ #include "video_core/utils.h" namespace VideoCore { + /** * Dumps a texture to TGA * @param filename String filename to dump texture to @@ -16,29 +17,20 @@ namespace VideoCore { * @param raw_data Raw RGBA8 texture data to dump * @todo This should be moved to some general purpose/common code */ -void DumpTGA(std::string filename, int width, int height, u8* raw_data) { - TGAHeader hdr; - FILE* fout; - u8 r, g, b; - - memset(&hdr, 0, sizeof(hdr)); - hdr.datatypecode = 2; // uncompressed RGB - hdr.bitsperpixel = 24; // 24 bpp - hdr.width = width; - hdr.height = height; - - fout = fopen(filename.c_str(), "wb"); +void DumpTGA(std::string filename, short width, short height, u8* raw_data) { + TGAHeader hdr = {0, 0, 2, 0, 0, 0, 0, width, height, 24, 0}; + FILE* fout = fopen(filename.c_str(), "wb"); + fwrite(&hdr, sizeof(TGAHeader), 1, fout); - for (int i = 0; i < height; i++) { - for (int j = 0; j < width; j++) { - b = raw_data[(3 * (i * width)) + (3 * j) + 0]; - g = raw_data[(3 * (i * width)) + (3 * j) + 1]; - r = raw_data[(3 * (i * width)) + (3 * j) + 2]; - putc(b, fout); - putc(g, fout); - putc(r, fout); + + for (int y = 0; y < height; y++) { + for (int x = 0; x < width; x++) { + putc(raw_data[(3 * (y * width)) + (3 * x) + 0], fout); // b + putc(raw_data[(3 * (y * width)) + (3 * x) + 1], fout); // g + putc(raw_data[(3 * (y * width)) + (3 * x) + 2], fout); // r } } + fclose(fout); } } // namespace diff --git a/src/video_core/utils.h b/src/video_core/utils.h index 20d4ec9e0f..9cb3d4d43d 100644 --- a/src/video_core/utils.h +++ b/src/video_core/utils.h @@ -59,6 +59,6 @@ struct TGAHeader { * @param raw_data Raw RGBA8 texture data to dump * @todo This should be moved to some general purpose/common code */ -void DumpTGA(std::string filename, int width, int height, u8* raw_data); +void DumpTGA(std::string filename, short width, short height, u8* raw_data); } // namespace