受限 GPU 模式
渲染器初始化时检测设备能力,选择 high 或 constrained。受限模式限制画布尺寸,在 WebGL 路径缺少细节切片时避免解码完整栅格背景。自动检测无需修改宿主代码。
自动检测
满足任一条件即归为受限设备:
- 设备像素比至少为 3,或物理屏幕面积超过 800 万像素。
- 支持触控,且主指针为粗指针。
- GPU 纹理上传基准测试耗时超过 30 ms。
测试上传 512 × 512 RGBA 纹理十次并测量完成时间。声明的最大纹理尺寸不是唯一判断依据。这些检查描述的是渲染策略,不保证某个具体手机型号的表现。
背景行为
下表适用于 WebGL 中转换后的栅格背景。SVG 渲染及 Canvas2D 回退保留原有图片加载行为。
| 项目 | High 级别 | Constrained 级别 |
|---|---|---|
| 最大画布尺寸 | 无级别专属限制 | 2048 px |
| 总览 | 预览图 | 预览图 |
| 有切片时放大 | 从切片获取有尺寸上限的细节 | 从切片获取有尺寸上限的细节 |
| 无切片时放大 | 回退到完整图片 | 仅预览图 |
有细节切片时,渲染器仅组合可见区域所需切片,生成尺寸受限的细节裁剪图。缩小时释放细节纹理,快速移动时丢弃过时结果。
自 Renderer 1.74 起,缺少细节切片的受限设备在所有缩放级别都保留预览图,因此背景细节可能不够清晰。此路径不会为生成裁剪图而解码完整图片;High 级别仍保留此回退方式。
配置
省略 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。
验证
启用 debug: true,在浏览器控制台查看级别选择和背景加载。在应用支持的真实设备上,分别检查有切片和仅预览的座位图。桌面模拟无法确定手机的内存行为;强制分级有助于测试对应渲染路径。