public Boolean Validate(IMediaFeature feature, IRenderDevice renderDevice) { var defaultValue = new Length(1.0, Length.Unit.None); var converter = feature.IsMinimum || feature.IsMaximum ? NaturalIntegerConverter : NaturalIntegerConverter.Option(defaultValue); var index = converter.Convert(feature.Value); if (index != null) { var desired = index.AsInt32(); var available = renderDevice.MonochromeBits; if (feature.IsMaximum) { return(available <= desired); } else if (feature.IsMinimum) { return(available >= desired); } return(desired == available); } return(false); }
public Boolean Validate(IMediaFeature feature, IRenderDevice device) { var converter = feature.IsMinimum || feature.IsMaximum ? NaturalIntegerConverter : NaturalIntegerConverter.Option(1); var index = converter.Convert(feature.Value); if (index != null) { var desired = index.AsInteger(); var available = device.ColorBits; if (feature.IsMaximum) { return(available <= desired); } else if (feature.IsMinimum) { return(available >= desired); } return(desired == available); } return(false); }