Mercurial > hg > dmlib
changeset 1818:7bafe5f0998d
Implement DM_RLE_ZERO_COUNT_MAX support in the generic RLE compressor.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 22 Jun 2018 09:56:32 +0300 |
parents | ca9fe688ab6b |
children | c12bd223000e |
files | tools/lib64gfx.c |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/tools/lib64gfx.c Thu Jun 21 19:42:18 2018 +0300 +++ b/tools/lib64gfx.c Fri Jun 22 09:56:32 2018 +0300 @@ -560,7 +560,9 @@ if ((cfg->flags & DM_RLE_WORD_RUNS) && (count >= cfg->rleMinCountW || data == cfg->rleMarkerW)) { - // A simple marker byte RLE variant: [Marker] [count] [data] + if (count == 65536 && (cfg->flags & DM_RLE_ZERO_COUNT_MAX)) + count = 0; + if (!dmGrowBufPutU8(dst, cfg->rleMarkerW)) goto err; @@ -583,7 +585,9 @@ if ((cfg->flags & DM_RLE_BYTE_RUNS) && (count >= cfg->rleMinCountB || data == cfg->rleMarkerB)) { - // A simple marker byte RLE variant: [Marker] [count] [data] + if (count == 256 && (cfg->flags & DM_RLE_ZERO_COUNT_MAX)) + count = 0; + if (!dmGrowBufPutU8(dst, cfg->rleMarkerB)) goto err;