Получить причину потери контекста WebGL - PullRequest
1 голос
/ 20 марта 2019

Я работаю над приложением WebGL и недавно получаю сообщения о том, что оно иногда теряет контекст и просто оставляет пользователей с белым экраном.

Я добавил код для обработки потери контекста и возобновления операции, когда / если контекст восстанавливается (хотя кажется, что chrome никогда не восстанавливает его ...), но это все еще оставляет меня в корне: иногда я теряя свой контекст.

Я понимаю, что иногда это неизбежно, но я бы хотел сказать пользователям, что "у вас недостаточно ОЗУ", "обновить драйверы графики" или что-то в этом роде. Есть ли способ узнать причину ошибки?

Единственное, что я вижу, это «statusMessage» на событии, которое сейчас дает мне «потерянный контекст»?

1 Ответ

1 голос
/ 21 марта 2019

Причина не указана.

Что касается восстановления контекста, вы должны обработать как событие webglcontextlost, так и вызов event.preventDefault(), иначе контекст никогда не будет восстановлен.

Вам также нужно обработать событие webglcontextrestored, чтобы узнать, когда оно было восстановлено, и понять, что все ваши объекты WebGL, созданные ранее, теперь недействительны и требуют повторного создания.

Спецификация показывает пример кода

...