Spec-Zone.ru › Web APIs

WebGLRenderingContext: метод isContextLost()

Базовая поддержка Широко распространена

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Web Workers.

Метод WebGLRenderingContext.isContextLost() возвращает булево значение, указывающее, потеряно ли контекст WebGL и необходимо ли его повторно установить перед возобновлением рендеринга.

Синтаксис

isContextLost()

Параметры

Нет.

Возвращаемое значение

Булево значение, которое равно true если контекст потерян, или false если нет.

Примечания по использованию

Существует несколько причин, по которым контекст WebGL может быть потерян, что делает необходимым его повторное установление перед возобновлением рендеринга. К таким причинам относятся:

  • Два или более страницы используют графический процессор (GPU), но вместе накладывают слишком большую нагрузку на GPU, поэтому браузер сообщает двум контекстам о потере соединения, затем выбирает один из двух для восстановления доступа.
  • Компьютер пользователя имеет несколько графических процессоров (например, ноутбук с мобильным и настольным графическими процессорами, первый используется в основном при работе от батареи), и пользователь или система решают переключиться на другой графический процессор. В этом случае все контексты теряются, а затем восстанавливаются после переключения графических процессоров.
  • Другая страница, выполняемая в браузере пользователя, выполняет операцию с использованием GPU, которая занимает слишком много времени, что заставляет браузер решить переустановить GPU, чтобы прервать задержку. Это приведет к потере всех контекстов WebGL во всем браузере.
  • Пользователь обновляет драйвер графического процессора в операционной системе, которая позволяет обновлять драйверы графического процессора без перезапуска системы.

Примеры

Например, при проверке успешности линковки программы вы также можете проверить, не потерян ли контекст:

gl.linkProgram(program);

if (!gl.getProgramParameter(program, gl.LINK_STATUS) && !gl.isContextLost()) {
  const info = gl.getProgramInfoLog(program);
  console.log(`Error linking program:\n${info}`);
}

Спецификации

Спецификация
Спецификация WebGL
# 5.14.13

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
isContextLost 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3

См. также

  • Событие WebGLContextEvent сигнализирует о изменениях состояния контекста.
  • Обработка потери контекста в WebGL: Вики-сайт Khronos WebGL

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/isContextLost

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API