/**
 * 大屏设计稿尺寸，所有渲染在此坐标系下绘制
 * SCREEN_WIDTH 固定 375，SCREEN_HEIGHT 根据小游戏端屏幕比例动态调整
 * SAFE_AREA_TOP / SAFE_AREA_BOTTOM 从小游戏端实时同步，保证 1:1 还原
 */
export const SCREEN_WIDTH = 375
export let SCREEN_HEIGHT = 667
export let SAFE_AREA_TOP = 0
export let SAFE_AREA_BOTTOM = 0

/**
 * 根据小游戏端的屏幕宽高比调整大屏设计稿高度
 * 保持 SCREEN_WIDTH=375 不变，高度 = 375 / ratio
 * @param {number} ratio 屏幕宽高比（width / height）
 */
export function configureScreenRatio(ratio) {
  if (!ratio || ratio <= 0) return
  const newHeight = Math.round(SCREEN_WIDTH / ratio)
  if (newHeight === SCREEN_HEIGHT) return
  SCREEN_HEIGHT = newHeight
}

/**
 * 根据小游戏端传来的安全区域数据，按比例映射到大屏坐标系
 * @param {number} safeTop   小游戏端 SAFE_AREA_TOP（像素）
 * @param {number} safeBottom 小游戏端 SAFE_AREA_BOTTOM（像素）
 * @param {number} srcScreenWidth 小游戏端屏幕宽度（像素）
 */
export function configureSafeArea(safeTop, safeBottom, srcScreenWidth) {
  // 小游戏坐标到大屏坐标的缩放比
  const scale = srcScreenWidth ? SCREEN_WIDTH / srcScreenWidth : 1
  SAFE_AREA_TOP = Math.round((safeTop || 0) * scale)
  SAFE_AREA_BOTTOM = Math.round((safeBottom || 0) * scale)
}
