diff options
author | Campbell Barton <campbell@blender.org> | 2022-10-27 09:24:51 +0300 |
---|---|---|
committer | Campbell Barton <campbell@blender.org> | 2022-10-27 11:23:46 +0300 |
commit | e75be000e3e83b53e0fc18c5719f41de37bd6a75 (patch) | |
tree | 884b50f7c8ce83b64bbd7d38cb648757603382a2 /intern/libmv | |
parent | 1e7776907c004ad8c6081b4cfcdeda5ec793b174 (diff) |
GHOST/Wayland: replace deferred registration with an update callback
There were two issues caused by deferred registration (added by [0]),
one crash on startup (T102075), another unreported issue with the GLX/EGL
context failing to initialize. Unfortunately I'm unable to reproduce the
errors but it seems likely deferring interface registration is not well
supported so this commit uses an alternative solution to some interfaces
depending on others for initialization.
Instead of relying on the order of registration, a separate "update"
callback has been added which is called after binding interfaces.
This has the advantage that it can be called when adding/removing
interfaces at run-time to avoid the dangling pointers being left in
locally allocated structures. In practice adding/removing interfaces
happens so rarely (only with "outputs" as far as I'm aware) that this
benefit is theoretical at the moment.
This should resolve T102075.
[0]: 9fe9705bc0af9d881905d75957c8dd467f8c8cb3
Diffstat (limited to 'intern/libmv')
0 files changed, 0 insertions, 0 deletions