--- title: WebGLRenderingContext.activeTexture() slug: Web/API/WebGLRenderingContext/activeTexture translation_of: Web/API/WebGLRenderingContext/activeTexture ---
WebGLRenderingContext.activeTexture()
是 WebGL API 方法之一,用来激活指定的纹理单元。
void gl.activeTexture(texture);
texture
gl.TEXTUREI
,其中的 I 在 0 到 gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1
范围内。无返回值。
如果 texture 不是 gl.TEXTUREI(
I 在 0 到 gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1
范围内),一个 gl.INVALID_ENUM
错误将被抛出。
接下来调用 gl.TEXTURE1
作为当前纹理,随后对纹理状态的更改将会影响到这个纹理。
gl.activeTexture(gl.TEXTURE1);
纹理单元的数量视实现而定, 你可以通过访问常量 MAX_COMBINED_TEXTURE_IMAGE_UNITS
来获取这个值。按照规范来说,最少是 8 个。
gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);
想要获取激活的纹理,可以查询常量 ACTIVE_TEXTURE
。
gl.activeTexture(gl.TEXTURE0); gl.getParameter(gl.ACTIVE_TEXTURE); // returns "33984" (0x84C0, gl.TEXUTURE0 enum value)
Specification | Status | Comment |
---|---|---|
{{SpecName('WebGL', "#5.14.3", "activeTexture")}} | {{Spec2('WebGL')}} | Initial definition. |
{{SpecName('OpenGL ES 2.0', "glActiveTexture.xml", "glActiveTexture")}} | {{Spec2('OpenGL ES 2.0')}} | Man page of the OpenGL API. |
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | {{CompatChrome("9")}} | {{CompatGeckoDesktop("2.0")}} | {{CompatIE("11")}} | {{CompatOpera("12")}} | {{CompatSafari("5.1")}} |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{CompatUnknown}} | 25 | {{CompatVersionUnknown}} | {{CompatUnknown}} | 12 | 8.1 |