SDL2, gpg :: GameServices и несколько окон - PullRequest
0 голосов
/ 09 мая 2018

Я использую C ++ SDK для Google Play Game Services в собственном приложении, построенном поверх SDL2. Собственная часть - это файл .so, загружаемый во время выполнения.

Все работает отлично, пока я использую приложение стандартным способом. С другой стороны, у меня возникают проблемы с gpg::GameServices, когда дело доходит до работы с несколькими окнами.
Когда приложение переключается в режим нескольких окон, собственная часть выходит из функции main и повторно вводит ее по схеме . Я не знаю, была ли остановлена ​​функция main из-за пользователя, который завершает приложение, или из-за переключения в режим нескольких окон, поэтому в конце функции я сбрасываю указатель на объект gpg::GameServices как предложено в документации. Затем он повторно инициализируется в начале той же функции.

Однако, похоже, что-то идет не так, и приложение просто зависает , делая это некоторое время со следующим сообщением:

V / GamesNativeSDK: очистка GameServices заняла более 15 секунд или вернула ошибку. Уничтожение объекта, когда GameServicesImpl все еще может быть активным.

Через 20 секунд приложение запускается снова, как и ожидалось, но это зависание довольно раздражает, и я не могу понять, в чем причина.
В качестве дополнительного примечания, вызов Flush или FlusBlocking не решает проблему по очевидным причинам (я сделал это просто, чтобы проверить, так ли это).

Есть ли какая-либо проблема, завершающая gpg::GameServices, даже если приложение не закрыто должным образом? Я имею в виду, когда действие уничтожается, но .so не удаляется, вместо этого создается новое действие, и функция main снова вызывается сразу после?

...