X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=retrace%2Fjson.cpp;h=bb901c2e5fbcec1c7833f9e3ae855868a88a49db;hb=6083cfc0885f162b532825b23639f0ec2fe285c2;hp=e500aa67b9a2fc086c264a332ea20faec17c8904;hpb=17a4541d67c73d413c9e8f8751cd9c2573933aef;p=apitrace diff --git a/retrace/json.cpp b/retrace/json.cpp index e500aa6..bb901c2 100644 --- a/retrace/json.cpp +++ b/retrace/json.cpp @@ -31,6 +31,9 @@ #include #include +#include + +#include "image.hpp" #include "json.hpp" @@ -297,3 +300,27 @@ JSONWriter::writeBool(bool b) { value = true; space = ' '; } + +void +JSONWriter::writeImage(image::Image *image, const char *format, unsigned depth) +{ + beginObject(); + + // Tell the GUI this is no ordinary object, but an image + writeStringMember("__class__", "image"); + + writeIntMember("__width__", image->width); + writeIntMember("__height__", image->height / depth); + writeIntMember("__depth__", depth); + + writeStringMember("__format__", format); + + beginMember("__data__"); + std::stringstream ss; + image->writePNG(ss); + const std::string & s = ss.str(); + writeBase64(s.data(), s.size()); + endMember(); // __data__ + + endObject(); +}