package jogamp.opengl.util.pngj;
import java.util.HashMap;
/**
* Internal PNG predictor filter, or strategy to select it.
*
*/
public enum FilterType {
/**
* No filter.
*/
FILTER_NONE(0),
/**
* SUB filter (uses same row)
*/
FILTER_SUB(1),
/**
* UP filter (uses previous row)
*/
FILTER_UP(2),
/**
* AVERAGE filter
*/
FILTER_AVERAGE(3),
/**
* PAETH predictor
*/
FILTER_PAETH(4),
/**
* Default strategy: select one of the above filters depending on global
* image parameters
*/
FILTER_DEFAULT(-1),
/**
* Aggressive strategy: select one of the above filters trying each of the
* filters (every 8 rows)
*/
FILTER_AGGRESSIVE(-2),
/**
* Very aggressive strategy: select one of the above filters trying each of
* the filters (for every row!)
*/
FILTER_VERYAGGRESSIVE(-3),
/**
* Uses all fiters, one for lines, cyciclally. Only for tests.
*/
FILTER_CYCLIC(-50),
/**
* Not specified, placeholder for unknown or NA filters.
*/
FILTER_UNKNOWN(-100), ;
public final int val;
private FilterType(final int val) {
this.val = val;
}
private static HashMap<Integer, FilterType> byVal;
static {
byVal = new HashMap<Integer, FilterType>();
for (final FilterType ft : values()) {
byVal.put(ft.val, ft);
}
}
public static FilterType getByVal(final int i) {
return byVal.get(i);
}
}