in TNLExample/TNLXImageSupport.m [372:410]
static id<TAPIImageEntityVariantModel> _SelectBestImageVariant(id<TAPIImageEntityModel> model, CGSize targetDimensions, UIViewContentMode targetContentMode)
{
if (targetDimensions.width <= 0 || targetDimensions.height <= 0) {
return model.variants.lastObject;
}
id<TAPIImageEntityVariantModel> selectedVariant = nil;
for (NSUInteger idx = 0; idx < model.variants.count && !selectedVariant; idx++) {
id<TAPIImageEntityVariantModel> variant = model.variants[idx];
switch (targetContentMode) {
case UIViewContentModeScaleAspectFit:
{
if (variant.dimensions.width >= targetDimensions.width || variant.dimensions.height >= targetDimensions.height) {
selectedVariant = variant;
}
break;
}
case UIViewContentModeScaleAspectFill:
{
if (variant.dimensions.width >= targetDimensions.width && variant.dimensions.height >= targetDimensions.height) {
selectedVariant = variant;
}
break;
}
default:
{
if (variant.dimensions.width >= targetDimensions.width || variant.dimensions.height >= targetDimensions.height) {
if (idx > 0) {
idx--;
}
selectedVariant = model.variants[idx];
}
break;
}
}
}
return selectedVariant ?: model.variants.lastObject;
}