可以复现的代码:
https://developers.weixin.qq.com/s/eRNeZDmb7MbN
demo的基本逻辑:创建一个使用webgl的canvas,再创建一个使用2d的canvas,然后把2d的canvas作为texture画到webgl的canvas上。
webgl的canvas背景色是红色,2d的canvas的背景色是绿色。
因为两个canvas的大小一致,所以理论上绿色区域应该完全覆盖红色区域。但是在 ios 上表现是绿色区域只能覆盖一部分。
安卓和开发者工具上的表现正常:
ios上的表现不对:
这是因为 iOS 在启动之初有一个转屏的过程,启动之后立刻创建离屏 canvas 的话,尺寸会以竖屏的为准。可以自行设置离屏 canvas 的尺寸,或者加一点延时再创建。
一摸一样遇到的问题 = v =
log显示高宽值颠倒...hahaha
注意到ios里的log,上屏canvas的style和离屏canvas的style属性有区别,离屏canvas的size属性和style属性是颠倒的。创建离屏canvas时已经是app启动5秒后了。