diff tools/lib64gfx.h @ 1660:7555c8803529

More work on improving the generic RLE decoder/encoder.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 30 May 2018 17:05:19 +0300
parents 9233da9de92c
children 1741717b1ae5
line wrap: on
line diff
--- a/tools/lib64gfx.h	Wed May 30 14:45:14 2018 +0300
+++ b/tools/lib64gfx.h	Wed May 30 17:05:19 2018 +0300
@@ -214,8 +214,8 @@
 
 enum
 {
-    DM_RLE_8BIT_RUNS        = 0x0001, // Uses one-byte runs
-    DM_RLE_16BIT_RUNS       = 0x0002, // Uses two-byte runs
+    DM_RLE_BYTE_RUNS        = 0x0001, // Uses one-byte run lengths
+    DM_RLE_WORD_RUNS        = 0x0002, // Uses two-byte (word) run lengths
     DM_RLE_RUNS_MASK        = 0x000f,
 
     DM_RLE_ORDER_1          = 0x0000, // Order: <marker>, <count/run length>, <data>
@@ -229,9 +229,21 @@
     int type;
     int flags;
     Uint8
-        rleMarker1, rleMarker2,
-        rleMask1, rleMask2,
-        rleMinCount, rleMaxCount;
+        // DM_COMP_RLE_MARKER mode
+        rleMarkerB,          // Marker byte for byte length runs (if DM_RLE_BYTE_RUNS used)
+        rleMarkerW,          // Marker byte for word length runs (if DM_RLE_WORD_RUNS used)
+
+        // DM_COMP_RLE_MASK mode
+        rleMarkerBits,
+        rleMarkerMask,       // Mask bits for marker: data & rleMarkerMask == rleMarkerBits
+        rleCountMask;        // Mask bits for length: count = data & rleCountMask
+
+    int
+        // Minimum and maximum run lengths
+        rleMinCountB,
+        rleMinCountW,
+        rleMaxCountB,
+        rleMaxCountW;
 } DMCompParams;