diff --git a/src/examples/images/test.tvg b/src/examples/images/test.tvg index 4ea5404e..56cc0563 100644 Binary files a/src/examples/images/test.tvg and b/src/examples/images/test.tvg differ diff --git a/src/lib/tvgBinaryDesc.h b/src/lib/tvgBinaryDesc.h index 218553ec..fe87890b 100644 --- a/src/lib/tvgBinaryDesc.h +++ b/src/lib/tvgBinaryDesc.h @@ -40,7 +40,7 @@ using TvgBinFlag = TvgBinByte; #define TVG_HEADER_SIGNATURE_LENGTH 6 #define TVG_HEADER_VERSION "000400" //Major 00, Minor 04, Micro 00 #define TVG_HEADER_VERSION_LENGTH 6 - +#define TVG_HEADER_RESERVED_LENGTH 4 //Storing flags for extensions //Paint Type #define TVG_TAG_CLASS_PICTURE (TvgBinTag)0xfc diff --git a/src/loaders/tvg/tvgTvgLoader.cpp b/src/loaders/tvg/tvgTvgLoader.cpp index 8a1a4605..6d0433a8 100644 --- a/src/loaders/tvg/tvgTvgLoader.cpp +++ b/src/loaders/tvg/tvgTvgLoader.cpp @@ -59,10 +59,13 @@ bool TvgLoader::readHeader() ptr += TVG_HEADER_VERSION_LENGTH; this->version = atoi(version); if (this->version > THORVG_VERSION_NUMBER()) { - TVGLOG("TVG", "This TVG file expects a higher version(%d) of ThorVG symbol!, Current ThorVG(%d)", this->version, THORVG_VERSION_NUMBER()); + TVGLOG("TVG", "This TVG file expects a higher version(%d) of ThorVG symbol(%d)", this->version, THORVG_VERSION_NUMBER()); } - //3. View Size + //3. Reserved + ptr += TVG_HEADER_RESERVED_LENGTH; + + //4. View Size READ_FLOAT(&w, ptr); ptr += SIZE(float); READ_FLOAT(&h, ptr); diff --git a/src/savers/tvg/tvgTvgSaver.cpp b/src/savers/tvg/tvgTvgSaver.cpp index 2cc46e4e..a373be53 100644 --- a/src/savers/tvg/tvgTvgSaver.cpp +++ b/src/savers/tvg/tvgTvgSaver.cpp @@ -83,7 +83,8 @@ bool TvgSaver::flushTo(const std::string& path) /* WARNING: Header format shall not changed! */ bool TvgSaver::writeHeader() { - buffer.grow(TVG_HEADER_SIGNATURE_LENGTH + TVG_HEADER_VERSION_LENGTH); + auto headerSize = TVG_HEADER_SIGNATURE_LENGTH + TVG_HEADER_VERSION_LENGTH + TVG_HEADER_RESERVED_LENGTH + SIZE(vsize); + buffer.grow(headerSize); //1. Signature auto ptr = buffer.ptr(); @@ -94,7 +95,7 @@ bool TvgSaver::writeHeader() memcpy(ptr, TVG_HEADER_VERSION, TVG_HEADER_VERSION_LENGTH); ptr += TVG_HEADER_VERSION_LENGTH; - buffer.count += (TVG_HEADER_SIGNATURE_LENGTH + TVG_HEADER_VERSION_LENGTH); + buffer.count += (TVG_HEADER_SIGNATURE_LENGTH + TVG_HEADER_VERSION_LENGTH + TVG_HEADER_RESERVED_LENGTH); //3. View Size writeData(vsize, SIZE(vsize));