WebGLRenderingContext: getParameter() 方法

基线 广泛可用

此功能已得到良好确立,并且可在许多设备和浏览器版本中使用。它自以下日期起在浏览器中可用: 2015 年 7 月.

WebGLRenderingContext.getParameter() 方法是 WebGL API 的一部分,它返回传递的参数名称的值。

语法

js
getParameter(pname)

参数

pname

一个 GLenum,用于指定要返回的参数值。请参阅以下可能的取值。

返回值

取决于参数。

参数名称

WebGL 1

在使用 WebGLRenderingContext 时,可以查询以下 pname 参数。

常量 返回类型 描述
gl.ACTIVE_TEXTURE GLenum
gl.ALIASED_LINE_WIDTH_RANGE Float32Array(包含 2 个元素)
gl.ALIASED_POINT_SIZE_RANGE Float32Array(包含 2 个元素)
gl.ALPHA_BITS GLint
gl.ARRAY_BUFFER_BINDING WebGLBuffer
gl.BLEND GLboolean
gl.BLEND_COLOR Float32Array(包含 4 个值)
gl.BLEND_DST_ALPHA GLenum
gl.BLEND_DST_RGB GLenum
gl.BLEND_EQUATION GLenum
gl.BLEND_EQUATION_ALPHA GLenum
gl.BLEND_EQUATION_RGB GLenum
gl.BLEND_SRC_ALPHA GLenum
gl.BLEND_SRC_RGB GLenum
gl.BLUE_BITS GLint
gl.COLOR_CLEAR_VALUE Float32Array(包含 4 个值)
gl.COLOR_WRITEMASK sequence<GLboolean>(包含 4 个值)
gl.COMPRESSED_TEXTURE_FORMATS Uint32Array 返回压缩纹理格式。

当使用 WEBGL_compressed_texture_s3tc 扩展时
  • ext.COMPRESSED_RGB_S3TC_DXT1_EXT
  • ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
  • ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
  • ext.COMPRESSED_RGBA_S3TC_DXT5_EXT

当使用 WEBGL_compressed_texture_s3tc_srgb 扩展时

  • ext.COMPRESSED_SRGB_S3TC_DXT1_EXT
  • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
  • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
  • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
当使用 WEBGL_compressed_texture_etc 扩展时
  • ext.COMPRESSED_R11_EAC
  • ext.COMPRESSED_SIGNED_R11_EAC
  • ext.COMPRESSED_RG11_EAC
  • ext.COMPRESSED_SIGNED_RG11_EAC
  • ext.COMPRESSED_RGB8_ETC2
  • ext.COMPRESSED_RGBA8_ETC2_EAC
  • ext.COMPRESSED_SRGB8_ETC2
  • ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
  • ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
  • ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
当使用 WEBGL_compressed_texture_pvrtc 扩展时
  • ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
  • ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
  • ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG
  • ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
当使用 WEBGL_compressed_texture_etc1 扩展时
  • ext.COMPRESSED_RGB_ETC1_WEBGL
当使用 WEBGL_compressed_texture_astc 扩展时
  • ext.COMPRESSED_RGBA_ASTC_4x4_KHR
  • ext.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
  • ext.COMPRESSED_RGBA_ASTC_5x4_KHR
  • ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
  • ext.COMPRESSED_RGBA_ASTC_5x5_KHR
  • ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
  • ext.COMPRESSED_RGBA_ASTC_6x5_KHR
  • ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
  • ext.COMPRESSED_RGBA_ASTC_6x6_KHR
  • ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
  • ext.COMPRESSED_RGBA_ASTC_8x5_KHR
  • ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
  • ext.COMPRESSED_RGBA_ASTC_8x6_KHR
  • ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
  • ext.COMPRESSED_RGBA_ASTC_8x8_KHR
  • ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
  • ext.COMPRESSED_RGBA_ASTC_10x5_KHR
  • ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
  • ext.COMPRESSED_RGBA_ASTC_10x6_KHR
  • ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
  • ext.COMPRESSED_RGBA_ASTC_10x6_KHR
  • ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
  • ext.COMPRESSED_RGBA_ASTC_10x10_KHR
  • ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
  • ext.COMPRESSED_RGBA_ASTC_12x10_KHR
  • ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
  • ext.COMPRESSED_RGBA_ASTC_12x12_KHR
  • ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
gl.CULL_FACE GLboolean
gl.CULL_FACE_MODE GLenum gl.FRONTgl.BACKgl.FRONT_AND_BACK。另请参阅 cullFace
gl.CURRENT_PROGRAM WebGLProgramnull 请参阅 useProgram
gl.DEPTH_BITS GLint
gl.DEPTH_CLEAR_VALUE GLfloat
gl.DEPTH_FUNC GLenum
gl.DEPTH_RANGE Float32Array(包含 2 个元素)
gl.DEPTH_TEST GLboolean
gl.DEPTH_WRITEMASK GLboolean
gl.DITHER GLboolean
gl.ELEMENT_ARRAY_BUFFER_BINDING WebGLBuffer
gl.FRAMEBUFFER_BINDING WebGLFramebuffernull null 对应于绑定到默认帧缓冲区。另请参阅 bindFramebuffer
gl.FRONT_FACE GLenum gl.CWgl.CCW。另请参阅 frontFace
gl.GENERATE_MIPMAP_HINT GLenum gl.FASTESTgl.NICESTgl.DONT_CARE。另请参阅 hint
gl.GREEN_BITS GLint
gl.IMPLEMENTATION_COLOR_READ_FORMAT GLenum
gl.IMPLEMENTATION_COLOR_READ_TYPE GLenum
gl.LINE_WIDTH GLfloat
gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS GLint
gl.MAX_CUBE_MAP_TEXTURE_SIZE GLint
gl.MAX_FRAGMENT_UNIFORM_VECTORS GLint
gl.MAX_RENDERBUFFER_SIZE GLint
gl.MAX_TEXTURE_IMAGE_UNITS GLint
gl.MAX_TEXTURE_SIZE GLint
gl.MAX_VARYING_VECTORS GLint
gl.MAX_VERTEX_ATTRIBS GLint
gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS GLint
gl.MAX_VERTEX_UNIFORM_VECTORS GLint
gl.MAX_VIEWPORT_DIMS Int32Array(包含 2 个元素)
gl.PACK_ALIGNMENT GLint
gl.POLYGON_OFFSET_FACTOR GLfloat
gl.POLYGON_OFFSET_FILL GLboolean
gl.POLYGON_OFFSET_UNITS GLfloat
gl.RED_BITS GLint
gl.RENDERBUFFER_BINDING WebGLRenderbuffernull 请参阅 bindRenderbuffer
gl.RENDERER string
gl.SAMPLE_BUFFERS GLint
gl.SAMPLE_COVERAGE_INVERT GLboolean
gl.SAMPLE_COVERAGE_VALUE GLfloat
gl.SAMPLES GLint
gl.SCISSOR_BOX 4 个元素的 Int32Array
gl.SCISSOR_TEST GLboolean
gl.SHADING_LANGUAGE_VERSION string
gl.STENCIL_BACK_FAIL GLenum
gl.STENCIL_BACK_FUNC GLenum
gl.STENCIL_BACK_PASS_DEPTH_FAIL GLenum
gl.STENCIL_BACK_PASS_DEPTH_PASS GLenum
gl.STENCIL_BACK_REF GLint
gl.STENCIL_BACK_VALUE_MASK GLuint
gl.STENCIL_BACK_WRITEMASK GLuint
gl.STENCIL_BITS GLint
gl.STENCIL_CLEAR_VALUE GLint
gl.STENCIL_FAIL GLenum
gl.STENCIL_FUNC GLenum
gl.STENCIL_PASS_DEPTH_FAIL GLenum
gl.STENCIL_PASS_DEPTH_PASS GLenum
gl.STENCIL_REF GLint
gl.STENCIL_TEST GLboolean
gl.STENCIL_VALUE_MASK GLuint
gl.STENCIL_WRITEMASK GLuint
gl.SUBPIXEL_BITS GLint
gl.TEXTURE_BINDING_2D WebGLTexturenull
gl.TEXTURE_BINDING_CUBE_MAP WebGLTexturenull
gl.UNPACK_ALIGNMENT GLint
gl.UNPACK_COLORSPACE_CONVERSION_WEBGL GLenum
gl.UNPACK_FLIP_Y_WEBGL GLboolean
gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL GLboolean
gl.VENDOR string
gl.VERSION string
gl.VIEWPORT 4 个元素的 Int32Array

WebGL 2

使用 WebGL2RenderingContext 时,可以查询以下 pname 参数。

常量 返回类型 描述
gl.COPY_READ_BUFFER_BINDING WebGLBuffernull 参见 bindBuffer
gl.COPY_WRITE_BUFFER_BINDING WebGLBuffernull 参见 bindBuffer
gl.DRAW_BUFFERi GLenum gl.BACKgl.NONEgl.COLOR_ATTACHMENT{0-15}。另请参见 drawBuffers
gl.DRAW_FRAMEBUFFER_BINDING WebGLFramebuffernull null 对应于绑定到默认帧缓冲区。另请参阅 bindFramebuffer
gl.FRAGMENT_SHADER_DERIVATIVE_HINT GLenum gl.FASTESTgl.NICESTgl.DONT_CARE。另请参阅 hint
gl.MAX_3D_TEXTURE_SIZE GLint
gl.MAX_ARRAY_TEXTURE_LAYERS GLint
gl.MAX_CLIENT_WAIT_TIMEOUT_WEBGL GLint64
gl.MAX_COLOR_ATTACHMENTS GLint
gl.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS GLint64
gl.MAX_COMBINED_UNIFORM_BLOCKS GLint
gl.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS GLint64
gl.MAX_DRAW_BUFFERS GLint
gl.MAX_ELEMENT_INDEX GLint64
gl.MAX_ELEMENTS_INDICES GLint
gl.MAX_ELEMENTS_VERTICES GLint
gl.MAX_FRAGMENT_INPUT_COMPONENTS GLint
gl.MAX_FRAGMENT_UNIFORM_BLOCKS GLint
gl.MAX_FRAGMENT_UNIFORM_COMPONENTS GLint
gl.MAX_PROGRAM_TEXEL_OFFSET GLint
gl.MAX_SAMPLES GLint
gl.MAX_SERVER_WAIT_TIMEOUT GLint64
gl.MAX_TEXTURE_LOD_BIAS GLfloat
gl.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS GLint
gl.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS GLint
gl.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS GLint
gl.MAX_UNIFORM_BLOCK_SIZE GLint64
gl.MAX_UNIFORM_BUFFER_BINDINGS GLint
gl.MAX_VARYING_COMPONENTS GLint
gl.MAX_VERTEX_OUTPUT_COMPONENTS GLint
gl.MAX_VERTEX_UNIFORM_BLOCKS GLint
gl.MAX_VERTEX_UNIFORM_COMPONENTS GLint
gl.MIN_PROGRAM_TEXEL_OFFSET GLint
gl.PACK_ROW_LENGTH GLint 参见 pixelStorei
gl.PACK_SKIP_PIXELS GLint 参见 pixelStorei
gl.PACK_SKIP_ROWS GLint 参见 pixelStorei
gl.PIXEL_PACK_BUFFER_BINDING WebGLBuffernull 参见 bindBuffer
gl.PIXEL_UNPACK_BUFFER_BINDING WebGLBuffernull 参见 bindBuffer
gl.RASTERIZER_DISCARD GLboolean
gl.READ_BUFFER GLenum
gl.READ_FRAMEBUFFER_BINDING WebGLFramebuffernull null 对应于绑定到默认帧缓冲区。另请参阅 bindFramebuffer
gl.SAMPLE_ALPHA_TO_COVERAGE GLboolean
gl.SAMPLE_COVERAGE GLboolean
gl.SAMPLER_BINDING WebGLSamplernull 参见 bindSampler
gl.TEXTURE_BINDING_2D_ARRAY WebGLTexturenull 参见 bindTexture
gl.TEXTURE_BINDING_3D WebGLTexturenull 参见 bindTexture
gl.TRANSFORM_FEEDBACK_ACTIVE GLboolean
gl.TRANSFORM_FEEDBACK_BINDING WebGLTransformFeedbacknull 参见 bindTransformFeedback
gl.TRANSFORM_FEEDBACK_BUFFER_BINDING WebGLBuffernull 参见 bindBuffer
gl.TRANSFORM_FEEDBACK_PAUSED GLboolean
gl.UNIFORM_BUFFER_BINDING WebGLBuffernull 参见 bindBuffer
gl.UNIFORM_BUFFER_OFFSET_ALIGNMENT GLint 参见 pixelStorei
gl.UNPACK_IMAGE_HEIGHT GLint 参见 pixelStorei
gl.UNPACK_ROW_LENGTH GLint 参见 pixelStorei
gl.UNPACK_SKIP_IMAGES GLint 参见 pixelStorei
gl.UNPACK_SKIP_PIXELS GLint 参见 pixelStorei
gl.UNPACK_SKIP_ROWS GLint 参见 pixelStorei
gl.VERTEX_ARRAY_BINDING WebGLVertexArrayObjectnull 参见 bindVertexArray

WebGL 扩展

使用 WebGL 扩展 时,可以查询以下 pname 参数

常量 返回类型 扩展 描述
ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT GLfloat EXT_texture_filter_anisotropic 最大可用各向异性。
ext.FRAGMENT_SHADER_DERIVATIVE_HINT_OES GLenum OES_standard_derivatives GLSL 内置函数(dFdxdFdyfwidth)的导数计算精度。
ext.MAX_COLOR_ATTACHMENTS_WEBGL GLint WEBGL_draw_buffers 帧缓冲区颜色附件点的最大数量。
ext.MAX_DRAW_BUFFERS_WEBGL GLint WEBGL_draw_buffers 绘图缓冲区的最大数量。
ext.DRAW_BUFFER0_WEBGL
ext.DRAW_BUFFER1_WEBGL
ext.DRAW_BUFFER2_WEBGL
ext.DRAW_BUFFER3_WEBGL
ext.DRAW_BUFFER4_WEBGL
ext.DRAW_BUFFER5_WEBGL
ext.DRAW_BUFFER6_WEBGL
ext.DRAW_BUFFER7_WEBGL
ext.DRAW_BUFFER8_WEBGL
ext.DRAW_BUFFER9_WEBGL
ext.DRAW_BUFFER10_WEBGL
ext.DRAW_BUFFER11_WEBGL
ext.DRAW_BUFFER12_WEBGL
ext.DRAW_BUFFER13_WEBGL
ext.DRAW_BUFFER14_WEBGL
ext.DRAW_BUFFER15_WEBGL
GLenum WEBGL_draw_buffers 绘图缓冲区。
ext.VERTEX_ARRAY_BINDING_OES WebGLVertexArrayObjectOES OES_vertex_array_object 绑定的顶点数组对象 (VAO)。
ext.TIMESTAMP_EXT GLuint64EXT

EXT_disjoint_timer_query

当前时间。
ext.GPU_DISJOINT_EXT GLboolean EXT_disjoint_timer_query

返回 GPU 是否执行了任何分离操作。

ext.MAX_VIEWS_OVR GLint OVR_multiview2 视图的最大数量。

示例

js
gl.getParameter(gl.DITHER);
gl.getParameter(gl.VERSION);
gl.getParameter(gl.VIEWPORT);

规范

规范
WebGL 规范
# 5.14.3
WebGL 2.0 规范
# 3.7.2

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅