From f8472940229e8582ec9f941069fc9576bd09b94c Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Thu, 3 May 2018 18:42:13 -0400 Subject: Added Surface type - as a simple value type to hold a 2d collection of pixels. (#548) Added PngSerializeUtil allows currently for just writing Surface of RGBA format. Removes dependency on stbi_image except for in PngSerializeUtil. Removed use of gWindowWidth/Height globals - pass the height into initialize or Renderer. --- tools/render-test/png-serialize-util.cpp | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 tools/render-test/png-serialize-util.cpp (limited to 'tools/render-test/png-serialize-util.cpp') diff --git a/tools/render-test/png-serialize-util.cpp b/tools/render-test/png-serialize-util.cpp new file mode 100644 index 000000000..a7f6aa83a --- /dev/null +++ b/tools/render-test/png-serialize-util.cpp @@ -0,0 +1,38 @@ +// png-serialize-util.cpp +#define _CRT_SECURE_NO_WARNINGS + +#include "png-serialize-util.h" + +#include +#include + +#define STB_IMAGE_WRITE_IMPLEMENTATION +#include "external/stb/stb_image_write.h" + +namespace renderer_test { +using namespace Slang; + +/* static */Slang::Result PngSerializeUtil::write(const char* filename, const Surface& surface) +{ + int numComps = 0; + switch (surface.m_format) + { + case Format::RGBA_Unorm_UInt8: + { + numComps = 4; + break; + } + default: break; + } + + if (numComps <= 0) + { + return SLANG_FAIL; + } + + int stbResult = stbi_write_png(filename, surface.m_width, surface.m_height, numComps, surface.m_data, surface.m_rowStrideInBytes); + + return stbResult ? SLANG_OK : SLANG_FAIL; +} + +} // renderer_test -- cgit v1.2.3