X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=retrace%2Fglstate_images.cpp;h=295ebe8797d3396922533154731d8b910c5fef5e;hb=45080ce539648a3fc073375cd9212b031a611f10;hp=e5e14517dc299e78d65fe69e98899961bc18cec2;hpb=61a25343ca58efa75b2d2d7c8b062b9ccee1d02b;p=apitrace diff --git a/retrace/glstate_images.cpp b/retrace/glstate_images.cpp index e5e1451..295ebe8 100644 --- a/retrace/glstate_images.cpp +++ b/retrace/glstate_images.cpp @@ -28,6 +28,7 @@ #include #include +#include #include "image.hpp" #include "json.hpp" @@ -434,11 +435,10 @@ dumpActiveTextureLevel(JSONWriter &json, Context &context, GLenum target, GLint context.restorePixelPackState(); json.beginMember("__data__"); - char *pngBuffer; - int pngBufferSize; - image::writePixelsToBuffer(pixels, desc.width, desc.depth * desc.height, channels, true, &pngBuffer, &pngBufferSize); - json.writeBase64(pngBuffer, pngBufferSize); - free(pngBuffer); + std::stringstream ss; + image::writePixelsToBuffer(ss, pixels, desc.width, desc.depth * desc.height, channels, true); + const std::string & s = ss.str(); + json.writeBase64(s.data(), s.size()); json.endMember(); // __data__ delete [] pixels; @@ -890,13 +890,12 @@ dumpReadBufferImage(JSONWriter &json, GLint width, GLint height, GLenum format, context.restorePixelPackState(); json.beginMember("__data__"); - char *pngBuffer; - int pngBufferSize; - image::writePixelsToBuffer(pixels, width, height, channels, true, &pngBuffer, &pngBufferSize); + std::stringstream ss; + image::writePixelsToBuffer(ss, pixels, width, height, channels, true); //std::cerr <<" Before = "<<(width * height * channels * sizeof *pixels) // <<", after = "<