WebGL: 2D и 3D графика для веб
Примечание: Эта функция доступна в Потоках Web Workers.
WebGL (Web Graphics Library) — это JavaScript API для рендеринга высокопроизводительной интерактивной 3D и 2D графики в любом совместимом веб-браузере без использования плагинов. WebGL достигает этого, представив API, который тесно соответствует OpenGL ES 2.0, который может использоваться в HTML <canvas> элементах. Это соответствие позволяет API использовать ускорение графики аппаратного обеспечения, предоставляемое устройством пользователя.
Поддержка WebGL присутствует во всех современных браузерах (см. таблицы совместимости ниже в разделе совместимость); однако устройство пользователя также должно иметь аппаратное обеспечение, поддерживающее эти функции.
API WebGL 2 вводит поддержку большей части набора функций OpenGL ES 3.0; он предоставляется через интерфейс WebGL2RenderingContext.
Элемент <canvas> также используется API Canvas API для выполнения 2D графики на веб-страницах.
Справочник
Стандартные интерфейсы
Расширения
ANGLE_instanced_arraysEXT_blend_minmaxEXT_color_buffer_floatEXT_color_buffer_half_floatEXT_disjoint_timer_query-
EXT_float_blendЭкспериментальное EXT_frag_depthEXT_shader_texture_lodEXT_sRGBEXT_texture_compression_bptcEXT_texture_compression_rgtcEXT_texture_filter_anisotropicEXT_texture_norm16KHR_parallel_shader_compileOES_draw_buffers_indexedOES_element_index_uintOES_fbo_render_mipmapOES_standard_derivativesOES_texture_floatOES_texture_float_linearOES_texture_half_floatOES_texture_half_float_linearOES_vertex_array_objectOVR_multiview2WEBGL_color_buffer_floatWEBGL_compressed_texture_astcWEBGL_compressed_texture_etcWEBGL_compressed_texture_etc1WEBGL_compressed_texture_pvrtcWEBGL_compressed_texture_s3tcWEBGL_compressed_texture_s3tc_srgbWEBGL_debug_renderer_infoWEBGL_debug_shadersWEBGL_depth_textureWEBGL_draw_buffersWEBGL_lose_contextWEBGL_multi_draw
События
Константы и типы
WebGL 2
WebGL 2 — это крупное обновление WebGL, которое предоставляется через интерфейс WebGL2RenderingContext. Оно основано на OpenGL ES 3.0, и новые функции включают:
- 3D текстуры,
- Объекты сэмплеров,
- Объекты буферов униформ,
- Объекты синхронизации,
- Объекты запросов,
- Объекты отслеживания преобразований,
- Повышенные расширения, которые теперь являются частью ядра WebGL 2: Объекты массивов вершин, инстанцирование, несколько целей рендеринга, глубина фрагмента.
См. также блог-пост "WebGL 2 появился в Firefox" и webglsamples.org/WebGL2Samples для нескольких демонстраций.
Руководства и учебные пособия
Ниже вы найдете множество руководств, помогающих освоить понятия WebGL, и учебных пособий, предлагающих пошаговые уроки и примеры.
Руководства
- Данные в WebGL
-
Руководство по переменным, буферам и другим типам данных, используемых при написании кода WebGL.
- Рекомендации по разработке в WebGL
-
Советы и рекомендации, которые помогут повысить качество, производительность и надежность вашего контента WebGL.
- Использование расширений
-
Руководство по использованию расширений WebGL.
Учебные пособия
- Учебное пособие по WebGL
-
Руководство для начинающих по основным концепциям WebGL. Хороший способ начать, если у вас нет предыдущего опыта работы с WebGL.
Примеры
- Пример простой 2D анимации WebGL
-
Этот пример демонстрирует простую анимацию фигуры одного цвета. Рассмотренные темы: адаптация к различиям в соотношении сторон, функция для построения программ шейдеров из наборов нескольких шейдеров и основы рисования в WebGL.
- WebGL на примерах
-
Ряд живых примеров с короткими объяснениями, демонстрирующими концепции и возможности WebGL. Примеры отсортированы по темам и уровню сложности, охватывая контекст рендеринга WebGL, программирование шейдеров, текстуры, геометрию, взаимодействие пользователя и многое другое.
Расширенные учебные пособия
- WebGL модель-вид-проекция
-
Подробное объяснение трех основных матриц, обычно используемых для представления 3D объекта: матриц модели, вида и проекции.
- Матричная математика для веб
-
Полезное руководство о том, как работают 3D-трансформационные матрицы и как ими можно пользоваться в веб-приложениях — как для расчетов WebGL, так и для CSS-трансформаций.
Ресурсы
- Сайт WebGL Khronos Основной веб-сайт WebGL в группе Khronos.
- Основы WebGL Базовое руководство с основами WebGL.
- Raw WebGL: Введение в WebGL Доклад Ника Дезольнье, в котором представлена основа WebGL.
- WebGL Академия HTML/JavaScript редактор с учебными материалами для изучения основ программирования webgl.
- Статистика WebGL Сайт со статистикой о возможностях WebGL в браузерах на разных платформах.
Библиотеки
- three.js — это кроссплатформенная, полнофункциональная 3D WebGL библиотека.
- Babylon.js — мощный, простой и открытый движок для игр и 3D-рендеринга, упакованный в удобный JavaScript фреймворк.
- Pixi.js — быстрый, кроссплатформенный 2D WebGL рендерер.
- Phaser — быстрый, бесплатный и увлекательный кроссплатформенный фреймворк для создания браузерных игр на Canvas и WebGL.
- PlayCanvas — кроссплатформенный игровой движок.
- glMatrix — JavaScript библиотека матриц и векторов для высокопроизводительных WebGL приложений.
- twgl — библиотека для сокращения объёма кода WebGL.
- RedGL — кроссплатформенная 3D WebGL библиотека.
- vtk.js — JavaScript библиотека для научной визуализации в браузере.
- webgl-lint поможет найти ошибки в вашем WebGL коде и предоставит полезную информацию.
Технические спецификации
Совместимость с браузерами
| Настольный | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | |
WebGL_API |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
activeTexture |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
attachShader |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
beginQuery |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
beginTransformFeedback |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
bindAttribLocation |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
bindBuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
bindBufferBase |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
bindBufferRange |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
bindFramebuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
bindRenderbuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
bindSampler |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
bindTexture |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
bindTransformFeedback |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
bindVertexArray |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
blendColor |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
blendEquation |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
blendEquationSeparate |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
blendFunc |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
blendFuncSeparate |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
blitFramebuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
bufferData |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
bufferSubData |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
canvas |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
checkFramebufferStatus |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
clear |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
clearBufferfi |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
|---|---|---|---|---|---|---|---|---|---|---|---|
clearBufferfv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
clearBufferiv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
clearBufferuiv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
clearColor |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
clearDepth |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
clearStencil |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
clientWaitSync |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
colorMask |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
compileShader |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
compressedTexImage2D |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
compressedTexImage3D |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
compressedTexSubImage2D |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
compressedTexSubImage3D |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
copyBufferSubData |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
copyTexImage2D |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
copyTexSubImage2D |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
copyTexSubImage3D |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
createBuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
createFramebuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
createProgram |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
createQuery |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
createRenderbuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
createSampler |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
createShader |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
createTexture |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
createTransformFeedback |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
|---|---|---|---|---|---|---|---|---|---|---|---|
createVertexArray |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
cullFace |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
deleteBuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
deleteFramebuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
deleteProgram |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
deleteQuery |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
deleteRenderbuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
deleteSampler |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
deleteShader |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
deleteSync |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
deleteTexture |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
deleteTransformFeedback |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
deleteVertexArray |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
depthFunc |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
depthMask |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
depthRange |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
detachShader |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
disable |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
disableVertexAttribArray |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
drawArrays |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
drawArraysInstanced |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
drawBuffers |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
drawElements |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
drawElementsInstanced |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
drawRangeElements |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
drawingBufferColorSpace |
104 | 104 | 132127–130Случайное преждевременное появление без функциональности. |
90 | 16.4 | 104 | 132127–130Случайное преждевременное появление без функциональности. |
71 | 16.4 | 20.0 | 104 |
|---|---|---|---|---|---|---|---|---|---|---|---|
drawingBufferFormat |
122 | 122 | Нет | 108 | Нет | 122 | Нет | 81 | Нет | 26.0 | 122 |
drawingBufferHeight |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
drawingBufferStorage |
122 | 122 | Нет | 108 | Нет | 122 | Нет | 81 | Нет | 26.0 | 122 |
drawingBufferWidth |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
enable |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
enableVertexAttribArray |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
endQuery |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
endTransformFeedback |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
fenceSync |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
finish |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
flush |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
framebufferRenderbuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
framebufferTexture2D |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
framebufferTextureLayer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
frontFace |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
generateMipmap |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getActiveAttrib |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getActiveUniform |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getActiveUniformBlockName |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getActiveUniformBlockParameter |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getActiveUniforms |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getAttachedShaders |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getAttribLocation |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getBufferParameter |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getBufferSubData |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getContextAttributes |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
|---|---|---|---|---|---|---|---|---|---|---|---|
getError |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getExtension |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getFragDataLocation |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getFramebufferAttachmentParameter |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getIndexedParameter |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getInternalformatParameter |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getParameter |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getProgramInfoLog |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getProgramParameter |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getQuery |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getQueryParameter |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getRenderbufferParameter |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getSamplerParameter |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getShaderInfoLog |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getShaderParameter |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getShaderPrecisionFormat |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getShaderSource |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getSupportedExtensions |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getSyncParameter |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getTexParameter |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getTransformFeedbackVarying |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getUniform |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getUniformBlockIndex |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getUniformIndices |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getUniformLocation |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
getVertexAttrib |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
|---|---|---|---|---|---|---|---|---|---|---|---|
getVertexAttribOffset |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
hint |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
invalidateFramebuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
invalidateSubFramebuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
isBuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
isContextLost |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
isEnabled |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
isFramebuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
isProgram |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
isQuery |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
isRenderbuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
isSampler |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
isShader |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
isSync |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
isTexture |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
isTransformFeedback |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
isVertexArray |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
lineWidth |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
linkProgram |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
makeXRCompatible |
79 | 79 | Нет | 66 | Нет | 79 | Нет | 57 | Нет | 11.2 | Нет |
pauseTransformFeedback |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
pixelStorei |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
polygonOffset |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
readBuffer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
readPixels |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
renderbufferStorage |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
|---|---|---|---|---|---|---|---|---|---|---|---|
renderbufferStorageMultisample |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
resumeTransformFeedback |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
sampleCoverage |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
samplerParameterf |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
samplerParameteri |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
scissor |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
shaderSource |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
stencilFunc |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
stencilFuncSeparate |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
stencilMask |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
stencilMaskSeparate |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
stencilOp |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
stencilOpSeparate |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
texImage2D |
56 | 79 | 51 | 43 | 15 | 58 | 51Текстуры из видеоэлементов не поддерживаются. См. ошибку 1884282. |
43 | 15 | 7.0 | 58 |
texImage3D |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
texParameterf |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
texParameteri |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
texStorage2D |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
texStorage3D |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
texSubImage2D |
56 | 79 | 51 | 43 | 15 | 58 | 51Текстуры из видеоэлементов не поддерживаются. См. ошибку 1884282. |
43 | 15 | 7.0 | 58 |
texSubImage3D |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
transformFeedbackVaryings |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform1f |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform1fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform1i |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform1iv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
|---|---|---|---|---|---|---|---|---|---|---|---|
uniform1ui |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform1uiv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform2f |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform2fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform2i |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform2iv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform2ui |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform2uiv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform3f |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform3fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform3i |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform3iv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform3ui |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform3uiv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform4f |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform4fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform4i |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform4iv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform4ui |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniform4uiv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniformBlockBinding |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniformMatrix2fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniformMatrix2x3fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniformMatrix2x4fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniformMatrix3fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniformMatrix3x2fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
|---|---|---|---|---|---|---|---|---|---|---|---|
uniformMatrix3x4fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniformMatrix4fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniformMatrix4x2fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
uniformMatrix4x3fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
unpackColorSpace |
104 | 104 | 132 | 90 | Нет | 104 | 132 | 71 | Нет | 20.0 | 104 |
useProgram |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
validateProgram |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttrib1f |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttrib1fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttrib2f |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttrib2fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttrib3f |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttrib3fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttrib4f |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttrib4fv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttribDivisor |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttribI4i |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttribI4iv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttribI4ui |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttribI4uiv |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttribIPointer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
vertexAttribPointer |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
viewport |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
waitSync |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
| Настольный | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | |
WebGL_API |
9 | 12Для доступа к контексту WebGL используйтеexperimental-webgl вместо стандартного идентификатора webgl. |
4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
|---|---|---|---|---|---|---|---|---|---|---|---|
activeTexture |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
attachShader |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
bindAttribLocation |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
bindBuffer |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
bindFramebuffer |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
bindRenderbuffer |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
bindTexture |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
blendColor |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
blendEquation |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
blendEquationSeparate |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
blendFunc |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
blendFuncSeparate |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
bufferData |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
bufferSubData |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
canvas |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
checkFramebufferStatus |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
clear |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
clearColor |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
clearDepth |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
clearStencil |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
colorMask |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
compileShader |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
compressedTexImage2D |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
compressedTexSubImage2D |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
copyTexImage2D |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
copyTexSubImage2D |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
|---|---|---|---|---|---|---|---|---|---|---|---|
createBuffer |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
createFramebuffer |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
createProgram |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
createRenderbuffer |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
createShader |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
createTexture |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
cullFace |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
deleteBuffer |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
deleteFramebuffer |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
deleteProgram |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
deleteRenderbuffer |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
deleteShader |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
deleteTexture |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
depthFunc |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
depthMask |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
depthRange |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
detachShader |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
disable |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
disableVertexAttribArray |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
drawArrays |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
drawElements |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
drawingBufferColorSpace |
104 | 104 | 132127–130Accidental early exposure with no functionality. |
90 | 16.4 | 104 | 132127–130Accidental early exposure with no functionality. |
71 | 16.4 | 20.0 | 104 |
drawingBufferFormat |
122 | 122 | Нет | 108 | Нет | 122 | Нет | 81 | Нет | 26.0 | 122 |
drawingBufferHeight |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
drawingBufferStorage |
122 | 122 | Нет | 108 | Нет | 122 | Нет | 81 | Нет | 26.0 | 122 |
drawingBufferWidth |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
|---|---|---|---|---|---|---|---|---|---|---|---|
enable |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
enableVertexAttribArray |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
finish |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
flush |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
framebufferRenderbuffer |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
framebufferTexture2D |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
frontFace |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
generateMipmap |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getActiveAttrib |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getActiveUniform |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getAttachedShaders |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getAttribLocation |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getBufferParameter |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getContextAttributes |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getError |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getExtension |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getFramebufferAttachmentParameter |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getParameter |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getProgramInfoLog |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getProgramParameter |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getRenderbufferParameter |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getShaderInfoLog |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getShaderParameter |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getShaderPrecisionFormat |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getShaderSource |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getSupportedExtensions |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
|---|---|---|---|---|---|---|---|---|---|---|---|
getTexParameter |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getUniform |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getUniformLocation |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getVertexAttrib |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
getVertexAttribOffset |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
hint |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
isBuffer |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
isContextLost |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
isEnabled |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
isFramebuffer |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
isProgram |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
isRenderbuffer |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
isShader |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
isTexture |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
lineWidth |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
linkProgram |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
makeXRCompatible |
79 | 79 | Нет | Нет | Нет | 79 | Нет | Нет | Нет | 11.2 | Нет |
pixelStorei |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
polygonOffset |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
readPixels |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
renderbufferStorage |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
sampleCoverage |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
scissor |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
shaderSource |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
stencilFunc |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
stencilFuncSeparate |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
|---|---|---|---|---|---|---|---|---|---|---|---|
stencilMask |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
stencilMaskSeparate |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
stencilOp |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
stencilOpSeparate |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
texImage2D |
9 | 12 | 4 | 12 | 5.1 | 25 | 4Текстуры из видеоэлементов не поддерживаются. См. ошибку 1884282. |
12 | 8 | 1.5 | 4.4.3 |
texParameterf |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
texParameteri |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
texSubImage2D |
9 | 12 | 4 | 12 | 5.1 | 25 | 4Текстуры из видеоэлементов не поддерживаются. См. ошибку 1884282. |
12 | 8 | 1.5 | 4.4.3 |
uniform1f |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform1fv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform1i |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform1iv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform2f |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform2fv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform2i |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform2iv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform3f |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform3fv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform3i |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform3iv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform4f |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform4fv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform4i |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniform4iv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniformMatrix2fv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
uniformMatrix3fv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
|---|---|---|---|---|---|---|---|---|---|---|---|
uniformMatrix4fv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
unpackColorSpace |
104 | 104 | 132 | 90 | Нет | 104 | 132 | 71 | Нет | 20.0 | 104 |
useProgram |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
validateProgram |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
vertexAttrib1f |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
vertexAttrib1fv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
vertexAttrib2f |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
vertexAttrib2fv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
vertexAttrib3f |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
vertexAttrib3fv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
vertexAttrib4f |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
vertexAttrib4fv |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
vertexAttribPointer |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
viewport |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
worker_support |
Нет | Нет | 105 | Нет | Нет | Нет | 105 | Нет | Нет | Нет | Нет |
api.WebGLRenderingContext
Таблицы BCD загружаются только в браузере
api.WebGL2RenderingContext
Таблицы BCD загружаются только в браузере
Примечания о совместимости
В дополнение к браузеру, само GPU также должно поддерживать функцию. Таким образом, например, S3 Texture Compression (S3TC) доступен только на планшетах на базе Tegra. Большинство браузеров предоставляют контекст WebGL через имя контекста webgl, но старые версии также нуждаются в experimental-webgl. Кроме того, предстоящий WebGL 2 полностью обратно совместим и будет иметь имя контекста webgl2.
Примечания Gecko
Отладка и тестирование WebGL
Firefox предоставляет две доступные настройки, которые позволяют управлять возможностями WebGL в целях тестирования:
webgl.min_capability_mode-
Булево свойство, которое, когда
true, включает режим минимальных возможностей. В этом режиме WebGL настроен на поддержку только минимального набора функций и возможностей, требуемых спецификацией WebGL. Это позволяет убедиться, что ваш код WebGL будет работать на любом устройстве или браузере, независимо от их возможностей. Этоfalseпо умолчанию. webgl.disable_extensions-
Булево свойство, которое, когда
true, отключает все расширения WebGL. Этоfalseпо умолчанию.
См. также
© 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/WebGL_API