static id _SelectBestImageVariant()

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;
}