Mercurial > hg > dmlib
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;