Baseline Widely available *
WebGLProgram æ¯ WebGL API çä¸é¨åï¼å®ç±ä¸¤ä¸ªWebGLShader
sï¼webgl çè²å¨ï¼ç»æï¼åå«ä¸ºé¡¶ç¹çè²å¨åçå
çè²å¨ï¼ä¸¤ç§çè²å¨é½æ¯éç¨ GLSL è¯è¨ç¼åçï¼ãå建ä¸ä¸ª WebGLProgram éè¦è°ç¨ GL ä¸ä¸æçcreateProgram()
æ¹æ³ï¼ç¶åè°ç¨attachShader()
æ¹æ³éå ä¸çè²å¨ï¼ä¹åä½ æè½å°å®ä»¬è¿æ¥å°ä¸ä¸ªå¯ç¨çç¨åºã
WebGLProgram çå建è¿ç¨è¯·åèä¸é¢ç代ç ï¼
var program = gl.createProgram();
// æ·»å é¢å
åå¨ççè²å¨
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);
gl.linkProgram(program);
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
var info = gl.getProgramInfoLog(program);
throw "WebGL program ä¸è½ç¼è¯ã\n\n" + info;
}
æ¥ç WebGLShader
api äºè§£æ´å¤å
³äºå建以ä¸ä¾åä¸çé¡¶ç¹çè²å¨
åçå
çè²å¨
çä¿¡æ¯ã
çè²å¨ç¨åºå¨ä½¿ç¨çè¿ç¨ä¸è¦åä¸ºå æ¥ï¼å æ¬åç¥ GPU æ¥ä½¿ç¨è¿æ®µçè²å¨ç¨åºï¼ç»å®åéçæ°æ®ç¼å²åºï¼é ç½®ç¸å ³éé¡¹ï¼æç»æå¾åç»å¶å°å±å¹ä¸ã
// Use the program
gl.useProgram(program);
// Bind existing attribute data
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
gl.enableVertexAttribArray(attributeLocation);
gl.vertexAttribPointer(attributeLocation, 3, gl.FLOAT, false, 0, 0);
// Draw a single triangle
gl.drawArrays(gl.TRIANGLES, 0, 3);
å é¤çè²å¨ç¨åº
妿å¨è¿æ¥çè²å¨ç¨åºçè¿ç¨ä¸åçäºéè¯¯ï¼æè
ä½ å¸æå é¤ä¸ä¸ªå·²ç»åå¨ççè²å¨ç¨åºï¼ä½ å¯ä»¥è°ç¨ä»£ç WebGLRenderingContext.deleteProgram()
ï¼è¿å°éæ¾è¿æ¥çè²å¨ç¨åºçå
åã
gl.deleteProgram(program);
è§è æµè§å¨å
¼å®¹æ§ ç¸å
³é¾æ¥
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