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;