static RetainPtr<CFDictionaryRef> imageSourceOptions(SubsamplingLevel subsamplingLevel = 0) { if (subsamplingLevel) return createImageSourceOptions(subsamplingLevel); static NeverDestroyed<RetainPtr<CFDictionaryRef>> options = createImageSourceOptions(0); return options; }
static CFDictionaryRef imageSourceOptions(ImageSource::ShouldSkipMetadata skipMetadata = ImageSource::SkipMetadata, SubsamplingLevel subsamplingLevel = 0) { if (subsamplingLevel) return createImageSourceOptions(skipMetadata, subsamplingLevel); static CFDictionaryRef options = createImageSourceOptions(skipMetadata, 0); return options; }
static RetainPtr<CFDictionaryRef> imageSourceOptions(SubsamplingLevel subsamplingLevel = SubsamplingLevel::Default, DecodingMode decodingMode = DecodingMode::OnDemand) { if (subsamplingLevel > SubsamplingLevel::First) return createImageSourceOptions(subsamplingLevel, decodingMode); static NeverDestroyed<RetainPtr<CFDictionaryRef>> optionsOnDemand = createImageSourceOptions(SubsamplingLevel::First, DecodingMode::OnDemand); static NeverDestroyed<RetainPtr<CFDictionaryRef>> optionsImmediate = createImageSourceOptions(SubsamplingLevel::First, DecodingMode::Immediate); return decodingMode == DecodingMode::OnDemand ? optionsOnDemand : optionsImmediate; }