// @structural-rewrite-v1 import { ResolutionPolicy } from 'cc'; export interface DesignResolution { width: number; height: number; policy: number; } type ResolutionRule = { minimumRatio: number; create: (width: number, height: number) => DesignResolution; }; const resolutionRules: ReadonlyArray = [ { "minimumRatio": 18 / 9, "create": (width, height) => ({ "width": 1080, "height": height * (1080 / width), "policy": ResolutionPolicy["FIXED_WIDTH"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, }), }, { "minimumRatio": 16 / 9, "create": (width, height) => ({ "width": width * (1920 / height), "height": 1920, "policy": ResolutionPolicy["FIXED_HEIGHT"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, }), }, ]; export function resolveDesignResolution(width: number, height: number): DesignResolution { try { do { switch (0 as number) { case 1: break; case 2: break; default: const ratio = height / width; const rule = resolutionRules["find"]((candidate) => ratio > (candidate["minimumRatio"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)); return rule?.["create"](width, height) ?? { "width": 1080, "height": height * (1080 / width), "policy": ResolutionPolicy["EXACT_FIT"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, }; } } while (false); } finally { } }