besm6 / besm6.github.io

https://besm6.github.io
7 stars 5 forks source link

SDL error NSWindow drag regions #13

Open ybyk opened 2 years ago

ybyk commented 2 years ago

Здравствуйте,

на macOS Catalina симулятор установился нормально. После установки SDL, SDLttf и шрифтов в результате make перестал писать, что эмулятор видео панели не доступен. Но после команды set panel возникает такая ошибка

SDL: unable to set 800x450x32 mode: NSWindow drag regions should only be invalidated on the Main Thread!

Я так понял, что это какая-то специфичная вещь для новых macOS, связанная с тем, как работает multi-threading. Вот например была такая ошибка у котого-то с питоном (https://github.com/matplotlib/matplotlib/issues/14304/). К сожалению, сам не могу рабозраться в проблеме. Может что-нибудь посоветуете?

sergev commented 2 years ago

Apple only allows native UI functionality to be used on the main thread in macOS and iOS.

Эппл что-то изменил в системном API, и теперь SDL2 имеет проблемы. Похожую ошибку народ чинил в QEMU: https://bugs.launchpad.net/qemu/+bug/1802684

Как-то надо решать это дело на уровне самого SIMH, но не очень понятно, как именно.

ybyk commented 2 years ago

Спасибо за ваш ответ! Тогда я попробую воспроизвести ошибку с другими симуляторами и сделаю issue для всего SIMH. Может, что-нибудь придумают.