请教LayaAir 2.2.0 改了哪些有关mask的代码

2D
  • 修复bug修复了动态mask(例如动态扇形)导致的显存增长。修复了使用scrollRect以后,一分钟左右clip失效一次导致的闪的问题。修复了九宫格加mask不显示的bug

 
我们把游戏引擎代码升级到2.2.0 , pc浏览器正常, 在手机容器中运行我们的游戏第一次加载时使用mask显示黑块, 退出重新进入以后就正常了。
反复测试得到同样的结论, 之前的引擎代码是2.1.0 没有这个问题。
 
请问这可能是什么原因呢?
能都告诉我2.2.0改了哪些有关mask的代码吗?  我打算把mask相关手动改回去再试试。。  其他的升级到2.2.0还是非常好用的。

2.jpeg


1.jpeg

 
 
第一张图是首次出现bug显示的图
第二张图是后面进入正常显示的图
 
实现方案是给spine和进度条加了个mask
 
已邀请:

Laya_Aaron

赞同来自:

git上可以看到 提交修改记录的。

186*****028

赞同来自:

您好我找了好久一直没有解决这个问题, 尤其是iphone8上 spine+mask出现问题概率很高  。
 
修复了九宫格加mask不显示的bug  , 这句代码在哪改的呢?
 

chanayy123

赞同来自:

我也碰到过类似问题,都是在手机上出现的,安卓浏览器试过一款是好的。不是像你这样很多黑块,而是整个全黑屏,不管用图片或者矢量图做遮罩都会大概率触发此bug,把引擎库从2.2.0改成2.1.1.1 这个bug就好了,但是会出现新的bug,有些项目有,有些项目没有,但是一个个配置对的还是不行.报错日志如下:
TypeError: Cannot read property 'utils' of undefined
laya.core.js:24421
at MeshQuadTexture.__proto.releaseMesh (file:///F:/Laya2Workspace/laya.feifan.bandarq2.0/bin/libs/laya.core.js:24421:13)
 
at Context.__proto.flush (file:///F:/Laya2Workspace/laya.feifan.bandarq2.0/bin/libs/laya.core.js:10451:24)
 
at Stage.__proto.render (file:///F:/Laya2Workspace/laya.feifan.bandarq2.0/bin/libs/laya.core.js:31079:13)
 
at Stage.__proto._loop (file:///F:/Laya2Workspace/laya.feifan.bandarq2.0/bin/libs/laya.core.js:31018:8)
 
at loop (file:///F:/Laya2Workspace/laya.feifan.bandarq2.0/bin/libs/laya.core.js:12859:15)
 
TypeError: Cannot read property 'Loader' of undefined
laya.core.js:23502
at Loader.__proto.onLoaded (file:///F:/Laya2Workspace/laya.feifan.bandarq2.0/bin/libs/laya.core.js:23502:173)
 
at HTMLImageElement.onload (file:///F:/Laya2Workspace/laya.feifan.bandarq2.0/bin/libs/laya.core.js:23372:12)
 
TypeError: Cannot read property 'Loader' of undefined
laya.core.js:23502
at Loader.__proto.onLoaded (file:///F:/Laya2Workspace/laya.feifan.bandarq2.0/bin/libs/laya.core.js:23502:173)
 
at HTMLImageElement.onload (file:///F:/Laya2Workspace/laya.feifan.bandarq2.0/bin/libs/laya.core.js:23372:12)

xin

赞同来自:

这个bug跟spine应该没关系,我没用spine,就加载了两张图。ios几乎必现,进去就是这样子的贴图丢失了一样,过了一会自己就好了。

xin

赞同来自:

这个bug还在,昨晚查了好久最终排查是mask的原因。ios上很容易就出现了

186*****028

赞同来自:

最近心血来潮 升级laya引擎代码到2.4.0 仍然有这个bug
受其他帖子的启发, 抱着试一试的态度
打开laya.core.js
 
修改 setBlendFunc与setBlendFuncSeperate 代码 改回和原来2.1.0引擎一样的代码,奇迹发生了 ,问题似乎解决了,有待长期测试
 
static setBlendFunc(gl, sFactor, dFactor) {
(sFactor!==WebGLContext._sFactor || dFactor!==WebGLContext._dFactor)&& (WebGLContext._sFactor=WebGLContext._srcAlpha=sFactor,WebGLContext._dFactor=WebGLContext._dstAlpha=dFactor,gl.blendFunc(sFactor,dFactor));
}
static setBlendFuncSeperate(gl, srcRGB, dstRGB, srcAlpha, dstAlpha) {
if (srcRGB!==WebGLContext._sFactor || dstRGB!==WebGLContext._dFactor || srcAlpha!==WebGLContext._srcAlpha || dstAlpha!==WebGLContext._dstAlpha){
WebGLContext._sFactor=srcRGB;
WebGLContext._dFactor=dstRGB;
WebGLContext._srcAlpha=srcAlpha;
WebGLContext._dstAlpha=dstAlpha;
gl.blendFuncSeparate(srcRGB,dstRGB,srcAlpha,dstAlpha);
}
}
 
 

要回复问题请先

商务合作
商务合作