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;