Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

修复iOS多引擎支持 #55

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

修复iOS多引擎支持 #55

wants to merge 1 commit into from

Conversation

yangha886
Copy link

@yangha886 yangha886 commented Oct 16, 2023

根据 大佬@MeandNi#38 中修复Android侧多引擎的思路,仿写的iOS支持多引擎。
差别在于,在iOS中

(FlutterError* _Nullable)onListenWithArguments:(id _Nullable)arguments
eventSink:(FlutterEventSink)eventSink {}
回调时机有可能会在图片数据回调之后, 导致Flutter侧无法接受到图片信息。
所以这边新增了个NSMutableArray<NSMutableDictionary *> *sendQueue;
用于保存在eventSkin生成前收到的所有图片信息,生成后重新发送并清空。

@wongkoo
Copy link
Collaborator

wongkoo commented Oct 25, 2023

@yangha886 感谢你的 PR,我们会找时间仔细阅读。同时,我们也希望社区的朋友们一起参与进来。

@yangha886
Copy link
Author

@wongkoo 我发现,当使用texture渲染,在加载大量图片的页面滑动过程中通过屏幕边界右滑返回很容易出现崩溃, 在查看原因的过程中发现是子线程中使用已被标记为deactive的纹理导致的(此时主线程已调用stopTask), 我的解决办法是生成bufferRef放在子线程,然后回调给主线程绑定纹理id,如有需要,后续有时间我会再提一次PR。

@ArtisanM
Copy link

ArtisanM commented Dec 4, 2023

@wongkoo 我发现,当使用texture渲染,在加载大量图片的页面滑动过程中通过屏幕边界右滑返回很容易出现崩溃, 在查看原因的过程中发现是子线程中使用已被标记为deactive的纹理导致的(此时主线程已调用stopTask), 我的解决办法是生成bufferRef放在子线程,然后回调给主线程绑定纹理id,如有需要,后续有时间我会再提一次PR。

能看看怎么改的吗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants