Mercurial > hg > dmlib
comparison tools/lib64gfx.c @ 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 |
comparison
equal
deleted
inserted
replaced
1820:bea67833b9fa | 1821:ee2383d1a21e |
---|---|
346 // Find least used byte value | 346 // Find least used byte value |
347 for (size_t n = 0; n < DM_STAT_MAX; n++) | 347 for (size_t n = 0; n < DM_STAT_MAX; n++) |
348 { | 348 { |
349 if (stats[n] < smallest) | 349 if (stats[n] < smallest) |
350 { | 350 { |
351 cfg->rleMarkerW = selected; | 351 switch (cfg->flags & DM_RLE_RUNS_MASK) |
352 cfg->rleMarkerB = selected = n; | 352 { |
353 case DM_RLE_BYTE_RUNS | DM_RLE_WORD_RUNS: | |
354 cfg->rleMarkerW = selected; | |
355 cfg->rleMarkerB = selected = n; | |
356 break; | |
357 | |
358 case DM_RLE_BYTE_RUNS: | |
359 cfg->rleMarkerB = selected = n; | |
360 break; | |
361 | |
362 case DM_RLE_WORD_RUNS: | |
363 cfg->rleMarkerW = selected = n; | |
364 break; | |
365 } | |
353 smallest = stats[n]; | 366 smallest = stats[n]; |
354 } | 367 } |
355 } | 368 } |
356 } | 369 } |
357 break; | 370 break; |