【历史悠久bug】2.2=>2.4.3版本,native 平台 graphics 顶点达到一定数量后无法继续画图

graphics不断画线,最后就画不下去了,之前很多人反馈,看到官方也说修复了,但我试了几个2.x的版本native 平台问题 依然存在,下面是我在2.4.3版本测试的demo,麻烦官方人员验证一下,打包 android, ios,大概画个十秒钟就无法再继续画了

test-graphics.zip (840.4 KB)

参考

官方已经修复了,应该会合到2.4.4,参考这里

https://github.com/cocos-creator/cocos2d-x-lite/issues/2930

2赞

我刚才用 v2.4.3,下载了 git里的那个 demo,然后手动合并了修复代码
https://github.com/cocos-creator/cocos2d-x-lite/pull/2884/files

但是在 mac 和 ios 上运行还是会报错

`2020-11-09 15:36:53.839014+0800 test-graphics-desktop[29412:11788627] Metal API Validation Enabled
Initializing V8, version: 8.0.426.16
libuv version: 1.23.1-dev
Debugger listening…, visit [ devtools://devtools/bundled/js_app.html?v8only=true&ws=0.0.0.0:6086/00010002-0003-4004-8005-000600070008 ] in chrome browser to debug!
For help see https://nodejs.org/en/docs/inspector
JS: Enable batch GL commands optimization!
D/renderer (616): Device caps: maxVextexTextures: 16, maxFragUniforms: 1024, maxTextureUints: 16, maxVertexAttributes: 16, maxDrawBuffers: 8, maxColorAttatchments: 8
libpng warning: iCCP: known incorrect sRGB profile
JS: Cocos Creator v2.4.3
ERROR: Uncaught TypeError: Cannot read property ‘1’ of undefined, location: src/cocos2d-jsb.js:0:0
STACK:
[0]updateIADatas@jsb-adapter/jsb-engine.js:377
[1]proto.updateIADatas@jsb-adapter/jsb-engine.js:430
[2]MeshBuffer.checkAndSwitchBuffer@jsb-adapter/jsb-engine.js:6120
[3]requestStatic@src/cocos2d-jsb.js:42247
[4]proto.genBuffer@jsb-adapter/jsb-engine.js:403
[5]281.i._expandStroke@src/cocos2d-jsb.js:40027
[6]281.i.stroke@src/cocos2d-jsb.js:40010
[7]proto.stroke@jsb-adapter/jsb-engine.js:412
[8]stroke@src/cocos2d-jsb.js:30676
[9]o.start@assets/main/index.js:66
[10]eval@(no filename):3
[11]anonymous@src/cocos2d-jsb.js:21366
[12]invoke@src/cocos2d-jsb.js:21329
[13]startPhase@src/cocos2d-jsb.js:21458
[14]mainLoop@src/cocos2d-jsb.js:12713
[15]t@src/cocos2d-jsb.js:12943
[16]tick@jsb-adapter/jsb-builtin.js:2156

Uncaught Exception:

  • location : (see stack)
  • msg : Uncaught TypeError: Cannot read property ‘1’ of undefined
  • detail :
    [0]updateIADatas@jsb-adapter/jsb-engine.js:377
    [1]proto.updateIADatas@jsb-adapter/jsb-engine.js:430
    [2]MeshBuffer.checkAndSwitchBuffer@jsb-adapter/jsb-engine.js:6120
    [3]requestStatic@src/cocos2d-jsb.js:42247
    [4]proto.genBuffer@jsb-adapter/jsb-engine.js:403
    [5]281.i._expandStroke@src/cocos2d-jsb.js:40027
    [6]281.i.stroke@src/cocos2d-jsb.js:40010
    [7]proto.stroke@jsb-adapter/jsb-engine.js:412
    [8]stroke@src/cocos2d-jsb.js:30676
    [9]o.start@assets/main/index.js:66
    [10]eval@(no filename):3
    [11]anonymous@src/cocos2d-jsb.js:21366
    [12]invoke@src/cocos2d-jsb.js:21329
    [13]startPhase@src/cocos2d-jsb.js:21458
    [14]mainLoop@src/cocos2d-jsb.js:12713
    [15]t@src/cocos2d-jsb.js:12943
    [16]tick@jsb-adapter/jsb-builtin.js:2156`

想问下这个可能是哪里的问题呢?

jsb-adapter 也要改一下,参照下面这个pr,然后重新gulp build 一下

https://github.com/cocos-creator-packages/jsb-adapter/pull/357

1赞

感谢回复,照你说的修改 adapter 后,问题都解决了,谢谢 :sunglasses:

您好,请问下你是怎么合并的?合并了哪些文件?
我把整个2.4.4的引擎都替换了,还是没解决问题,很急,看到请回复,谢谢!

这里 6个文件
https://github.com/cocos-creator/cocos2d-x-lite/pull/2884/files

这里还有1个
https://github.com/cocos-creator-packages/jsb-adapter/pull/357/files

1赞

放心,2.44不行的话我们还有2.45,2.45不行我们还有250,两年长着呢,3.0才是我们的重头戏,没有2.x的小白鼠怎能成就我们伟大的cocos,unity之所以在未来干不过我们cocos,是因为我们舍得下狠手,2.x的项目就是淘汰的娃,看到3.0那么多的好功能了吗?那都是给新项目准备的。为了让我们的引擎显得高大上,js我们就不支持了,ts才能显示出我们的雄厚实力

你好,这些文件我都合并了,但是还是绘制有问题,报的错:
ERROR: Uncaught TypeError: Cannot read property ‘1’ of undefined, location: src/cocos2d-jsb.js:0:0
跟你一样的,请问还有什么问题啊?

这个2.4.4大概什么时候发布呢