A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://developer.mozilla.org/zh-CN/docs/Web/API/WebGL_API/Using_Extensions below:

使用 WebGL 扩展 - Web API

使用 WebGL 扩展

WebGL,像它的姐妹 API(OpenGL 和 OpenGL ES),支持使用扩展(extension)。可在 khronos webgl extension registry 查看完整的扩展列表。

备注: 不像别的 GL API,在 WebGL 中,扩展只有在明确需要的情况下才会加载。

规范扩展名、供应商前缀和首选项

扩展(extension)在未被官方正式制定为标准前(但仅当它们处于草案阶段时),某些浏览器厂商可能会支持 WebGL 扩展。这样的话,扩展的名字应该加上相应的厂商前缀(MOZ_、WEBKIT_ 等),否则这个扩展只能在浏览器切换了偏好设置的前提下生效。

如果你希望使用最前沿的扩展,并希望在规范被批准后可以继续使用(当然,假设扩展不会以不兼容的方式更改),你可以查询规范扩展名称以及供应商扩展名称。例如:

const ext =
  gl.getExtension("OES_vertex_array_object") ||
  gl.getExtension("MOZ_OES_vertex_array_object") ||
  gl.getExtension("WEBKIT_OES_vertex_array_object");

请注意,不鼓励使用供应商前缀,因此大多数浏览器使用功能标志(feature flag)而不是供应商前缀后面实施实验性扩展。

功能标志有:

命名约定

WebGL 扩展以“ANGLE”、“OES”、“EXT”、“WEBGL”为前缀。这些前缀反映了来源和意图:

查询可用的扩展程序

WebGL 上下文支持查询可用的扩展。

const available_extensions = gl.getSupportedExtensions();

WebGLRenderingContext.getSupportedExtensions() 方法返回一个字符串数组,每个字符串对应一个支持的扩展。

扩展列表 启用扩展

在一个扩展可用之前,必须使用 WebGLRenderingContext.getExtension() 来启用它。例如:

const float_texture_ext = gl.getExtension("OES_texture_float");

如果不支持扩展,则返回值为 null,否则为扩展对象。

扩展对象

如果扩展定义了 WebGL 核心规范中不可用的特定符号或函数,则它们将在调用 gl.getExtension() 后返回的扩展对象中可用。

参见

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4