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

WebGL API 的WebGLRenderingContext.detachShader()  方法:从一个 {{domxref("WebGLProgram")}}中分离一个先前附加的片段或者顶点着色器 ({{domxref("WebGLShader")}} ) .

+ +

Syntax

+ +
void gl.detachShader(program, shader);
+
+ +

Parameters

+ +
+
program
+
一个 {{domxref("WebGLProgram")}} 对象.
+
shader
+
一个顶点或者片元着色器 {{domxref("WebGLShader")}}.
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('WebGL', "#5.14.9", "detachShader")}}{{Spec2('WebGL')}}Initial definition.
{{SpecName('OpenGL ES 2.0', "glDetachShader.xml", "glDetachShader")}}{{Spec2('OpenGL ES 2.0')}}OpenGL man page.
+ +

例子

+ +

使用detachShader方法分离一个顶点或片元着色器

+ +
//顶点着色器
+    var vertexShader = gl.createShader(gl.VERTEX_SHADER);
+    gl.shaderSource(vertexShader, vertexSrc);
+    gl.compileShader(vertexShader);
+    //片元着色器
+    var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);//创建 WebGLShader。
+    gl.shaderSource(fragmentShader, fragmentSrc); //fragmentSrc设置一个 WebGLShader 的源码。
+    gl.compileShader(fragmentShader);
+
+    //WebGLProgram
+    var program = gl.createProgram();//创建 WebGLProgram
+    gl.attachShader(program, vertexShader); //往 WebGLProgram 添加一个片段或者顶点着色器。
+    gl.attachShader(program, fragmentShader);
+    gl.linkProgram(program);//链接给入的 WebGLProgram 对象
+    gl.detachShader(program, vertexShader); //从一个WebGLProgram中分离一个先前附加的片段或者顶点着色器;
+    gl.detachShader(program, fragmentShader);
+    gl.deleteShader(vertexShader);
+    gl.deleteShader(fragmentShader);
+
+ +

 

+ +

Browser compatibility

+ + + +

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

+ +

See also

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