From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../compressedteximage2d/index.html | 242 +++++++++++++++++++++ 1 file changed, 242 insertions(+) create mode 100644 files/zh-cn/web/api/webglrenderingcontext/compressedteximage2d/index.html (limited to 'files/zh-cn/web/api/webglrenderingcontext/compressedteximage2d') diff --git a/files/zh-cn/web/api/webglrenderingcontext/compressedteximage2d/index.html b/files/zh-cn/web/api/webglrenderingcontext/compressedteximage2d/index.html new file mode 100644 index 0000000000..939440ed64 --- /dev/null +++ b/files/zh-cn/web/api/webglrenderingcontext/compressedteximage2d/index.html @@ -0,0 +1,242 @@ +--- +title: 'WebGLRenderingContext.compressedTexImage[23]D()' +slug: Web/API/WebGLRenderingContext/compressedTexImage2D +translation_of: Web/API/WebGLRenderingContext/compressedTexImage2D +--- +
{{APIRef("WebGL")}}
+ +

下面这两个function:

+ +

 WebGLRenderingContext.compressedTexImage2D()  and WebGL2RenderingContext.compressedTexImage3D()WebGL API 中特指压缩二维或三维纹理图像的格式。

+ +

在使用这些方法之前,必须通过 WebGL extensions, 也就是 WebGL扩展启用压缩图像格式。

+ +

Syntax

+ +
// WebGL 1:
+void gl.compressedTexImage2D(target, level, internalformat, width, height, border, ArrayBufferView? pixels);
+
+// Additionally available in WebGL 2:
+// read from buffer bound to gl.PIXEL_UNPACK_BUFFER
+void gl.compressedTexImage2D(target, level, internalformat, width, height, border, GLsizei imageSize, GLintptr offset);
+void gl.compressedTexImage2D(target, level, internalformat, width, height, border,
+                             ArrayBufferView srcData, optional srcOffset, optional srcLengthOverride);
+
+ // read from buffer bound to gl.PIXEL_UNPACK_BUFFER
+void gl.compressedTexImage3D(target, level, internalformat, width, height, depth, border, GLsizei imageSize, GLintptr offset);
+void gl.compressedTexImage3D(target, level, internalformat, width, height, depth, border,
+                             ArrayBufferView srcData, optional srcOffset, optional srcLengthOverride);
+ +

Parameters

+ +
+
target
+
A {{domxref("GLenum")}} specifying the binding point (target) of the active texture. Possible values for compressedTexImage2D: +
    +
  • gl.TEXTURE_2D: A two-dimensional texture.
  • +
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped texture.
  • +
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped texture.
  • +
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped texture.
  • +
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped texture.
  • +
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped texture.
  • +
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped texture.
  • +
+ Possible values for compressedTexImage3D: + +
    +
  • gl.TEXTURE_2D_ARRAY
  • +
  • gl.TEXTURE_3D
  • +
+
+
level
+
A {{domxref("GLint")}} specifying the level of detail. Level 0 is the base image level and level n is the nth mipmap reduction level.
+
internalformat
+
A {{domxref("GLenum")}} specifying the compressed image format. Compressed image formats must be enabled by WebGL extensions before using this method. All values are possible for compressedTexImage2D. See compressed texture formats for which are valid for compressedTexImage3D. Possible values: +
    +
  • When using the {{domxref("WEBGL_compressed_texture_s3tc")}} extension: +
      +
    • ext.COMPRESSED_RGB_S3TC_DXT1_EXT
    • +
    • ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
    • +
    • ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
    • +
    • ext.COMPRESSED_RGBA_S3TC_DXT5_EXT
    • +
    +
  • +
  • When using the {{domxref("WEBGL_compressed_texture_s3tc_srgb")}} extension: +
      +
    • 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
    • +
    +
  • +
  • When using the {{domxref("WEBGL_compressed_texture_etc")}} extension: +
      +
    • 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
    • +
    +
  • +
  • When using the {{domxref("WEBGL_compressed_texture_pvrtc")}} extension: +
      +
    • ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
    • +
    • ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
    • +
    • ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG
    • +
    • ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
    • +
    +
  • +
  • When using the {{domxref("WEBGL_compressed_texture_etc1")}} extension: +
      +
    • ext.COMPRESSED_RGB_ETC1_WEBGL
    • +
    +
  • +
  • When using the {{domxref("WEBGL_compressed_texture_atc")}} extension: +
      +
    • ext.COMPRESSED_RGB_ATC_WEBGL
    • +
    • ext.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL
    • +
    • ext.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL
    • +
    +
  • +
  • When using the {{domxref("WEBGL_compressed_texture_astc")}} extension: +
      +
    • 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_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
    • +
    +
  • +
  • When using the {{domxref("EXT_texture_compression_bptc")}} extension: +
      +
    • ext.COMPRESSED_RGBA_BPTC_UNORM_EXT
    • +
    • ext.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT
    • +
    • ext.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT
    • +
    • ext.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT
    • +
    +
  • +
  • When using the {{domxref("EXT_texture_compression_rgtc")}} extension: +
      +
    • ext.COMPRESSED_RED_RGTC1_EXT
    • +
    • ext.COMPRESSED_SIGNED_RED_RGTC1_EXT
    • +
    • ext.COMPRESSED_RED_GREEN_RGTC2_EXT
    • +
    • ext.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
    • +
    +
  • +
+
+
width
+
A {{domxref("GLsizei")}} specifying the width of the texture.
+
height
+
A {{domxref("GLsizei")}} specifying the height of the texture.
+
depth
+
A {{domxref("GLsizei")}} specifying the depth of the texture/the number of textures in a TEXTURE_2D_ARRAY.
+
border
+
A {{domxref("GLint")}} specifying the width of the border. Must be 0.
+
imageSize
+
A {{domxref("GLsizei")}} specifying the number of bytes to read from the buffer bound to gl.PIXEL_UNPACK_BUFFER.
+
offset
+
A {{domxref("GLintptr")}} specifying the offset in bytes from which to read from the buffer bound to gl.PIXEL_UNPACK_BUFFER.
+
pixels
+
An {{domxref("ArrayBufferView")}} that be used as a data store for the compressed image data in memory.
+
+ +

Return value

+ +

None.

+ +

Examples

+ +
var ext = (
+  gl.getExtension('WEBGL_compressed_texture_s3tc') ||
+  gl.getExtension('MOZ_WEBGL_compressed_texture_s3tc') ||
+  gl.getExtension('WEBKIT_WEBGL_compressed_texture_s3tc')
+);
+
+var texture = gl.createTexture();
+gl.bindTexture(gl.TEXTURE_2D, texture);
+gl.compressedTexImage2D(gl.TEXTURE_2D, 0, ext.COMPRESSED_RGBA_S3TC_DXT5_EXT, 512, 512, 0, textureData);
+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('WebGL', "#COMPRESSEDTEXIMAGE2D", "compressedTexImage2D")}}{{Spec2('WebGL')}}Initial definition for WebGL.
{{SpecName('OpenGL ES 2.0', "glCompressedTexImage2D.xml", "glCompressedTexImage2D")}}{{Spec2('OpenGL ES 2.0')}}Man page of the (similar) OpenGL ES 2.0 API.
{{SpecName('OpenGL ES 3.0', "glCompressedTexImage2D.xhtml", "glCompressedTexImage2D")}}{{Spec2('OpenGL ES 3.0')}}Man page of the (similar) OpenGL ES 3.0 API.
+ +

Browser compatibility

+ + + +

compressedTexImage2D

+ +

{{Compat("api.WebGLRenderingContext.compressedTexImage2D")}}

+ +

compressedTexImage3D

+ +

{{Compat("api.WebGL2RenderingContext.compressedTexImage3D")}}

+ +

See also

+ + -- cgit v1.2.3-54-g00ecf