受限 GPU 模式

渲染器初始化时检测设备能力,选择 high 或 constrained。受限模式在 Canvas2D 路径限制背景图片的像素数,在 WebGL 路径缺少细节切片时避免解码完整栅格背景。自动检测无需修改宿主代码。

自动检测

满足任一条件即归为受限设备:

  • 设备像素比至少为 3。
  • 支持触控,且主指针为粗指针。
  • GPU 纹理上传基准测试耗时超过 30 ms。

测试上传 512 × 512 RGBA 纹理十次并测量完成时间。声明的最大纹理尺寸不是唯一判断依据。这些检查描述的是渲染策略,不保证某个具体手机型号的表现。

自 Renderer 1.75 起,屏幕尺寸不再影响分级。更早的版本还会把物理屏幕面积超过 800 万像素的设备归为受限设备,包括连接 4K 显示器或大尺寸外接显示器的台式机。在 Renderer 1.74 中,这类台式机在 WebGL 下渲染没有细节切片的背景时只显示预览图。

背景行为

下表适用于转换后的栅格背景。SVG 渲染保留原有图片加载行为。Canvas2D 是默认渲染器;仅当设置 switchToWebGL: true 且浏览器支持 WebGL 时,才会使用 WebGL。因此,默认接入应参考 Canvas2D 行。

项目 High 级别 Constrained 级别
总览 预览图 预览图
WebGL 有切片时放大 从切片获取有尺寸上限的细节 从切片获取有尺寸上限的细节
WebGL 无切片时放大 回退到完整图片 仅预览图
Canvas2D 背景 完整图片 不超过约 840 万像素的最大图片

有细节切片时,渲染器仅组合可见区域所需切片,生成尺寸受限的细节裁剪图。缩小时释放细节纹理,快速移动时丢弃过时结果。

自 Renderer 1.74 起,缺少细节切片的受限设备在所有缩放级别都保留预览图,因此背景细节可能不够清晰。此路径不会为生成裁剪图而解码完整图片;High 级别仍保留此回退方式。

自 Renderer 1.75 起,受限设备上的 Canvas2D 渲染器加载不超过约 840 万像素的最大背景图片,相当于 4096 × 2048 图片的面积。完整图片满足此上限时使用完整图片,否则使用为大型背景生成的最大合适降分辨率图片。若没有图片符合上限,则保留预览图,放大后的背景会不够清晰。此路径不会解码大型场馆的完整分辨率图片。

配置

省略 gpuTier 使用自动检测:

const renderer = new SeatmapBookingRenderer(container, {
  publicKey: 'your-public-key',
});

目标设备群需要固定策略时,设置 gpuTier:

const renderer = new SeatmapBookingRenderer(container, {
  publicKey: 'your-public-key',
  gpuTier: 'constrained',
});

接受 high 和 constrained。显式设置优先于 gpuTier URL 参数,URL 参数优先于自动检测。测试时可在承载渲染器的页面 URL 后添加 ?gpuTier=constrained。强制设置 high 也会让被自动判定为受限的设备在 Canvas2D 模式下恢复完整分辨率背景,因此这些设备会重新解码完整图片。

验证

启用 debug: true,在浏览器控制台查看级别选择和背景加载。在应用支持的真实设备上,分别检查有切片和仅预览的座位图。桌面模拟无法确定手机的内存行为;强制分级有助于测试对应渲染路径。

输入功能、设置、端点或 SDK 方法。