changeset 1821:ee2383d1a21e

Improve dmGenericRLEAnalyze() by being better at selecting rleMarker bytes for different combinations of DM_RLE_BYTE_RUNS and DM_RLE_WORD_RUNS flags.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 22 Jun 2018 11:20:15 +0300
parents bea67833b9fa
children 9bec535956fd
files tools/lib64gfx.c
diffstat 1 files changed, 15 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/tools/lib64gfx.c	Fri Jun 22 09:59:40 2018 +0300
+++ b/tools/lib64gfx.c	Fri Jun 22 11:20:15 2018 +0300
@@ -348,8 +348,21 @@
                 {
                     if (stats[n] < smallest)
                     {
-                        cfg->rleMarkerW = selected;
-                        cfg->rleMarkerB = selected = n;
+                        switch (cfg->flags & DM_RLE_RUNS_MASK)
+                        {
+                            case DM_RLE_BYTE_RUNS | DM_RLE_WORD_RUNS:
+                                cfg->rleMarkerW = selected;
+                                cfg->rleMarkerB = selected = n;
+                                break;
+
+                            case DM_RLE_BYTE_RUNS:
+                                cfg->rleMarkerB = selected = n;
+                                break;
+
+                            case DM_RLE_WORD_RUNS:
+                                cfg->rleMarkerW = selected = n;
+                                break;
+                        }
                         smallest = stats[n];
                     }
                 }