Baseline Widely available
WebGL API ç WebGLRenderingContext.bufferData()
æ¹æ³å建并åå§åäº Buffer å¯¹è±¡çæ°æ®åå¨åºã
// WebGL1: void gl.bufferData(target, size, usage); void gl.bufferData(target, ArrayBuffer? srcData, usage); void gl.bufferData(target, ArrayBufferView srcData, usage); // WebGL2: void gl.bufferData(target, ArrayBufferView srcData, usage, srcOffset, length);åæ°
GLenum
æå® Buffer ç»å®ç¹ï¼ç®æ ï¼ãå¯å以ä¸å¼ï¼
gl.ARRAY_BUFFER
: å
å«é¡¶ç¹å±æ§ç Bufferï¼å¦é¡¶ç¹åæ ï¼çº¹çåæ æ°æ®æé¡¶ç¹é¢è²æ°æ®ãgl.ELEMENT_ARRAY_BUFFER
: ç¨äºå
ç´ ç´¢å¼ç Bufferãgl.COPY_READ_BUFFER
: ä»ä¸ä¸ª Buffer 对象å¤å¶å°å¦ä¸ä¸ª Buffer 对象ãgl.COPY_WRITE_BUFFER
: ä»ä¸ä¸ª Buffer 对象å¤å¶å°å¦ä¸ä¸ª Buffer 对象ãgl.TRANSFORM_FEEDBACK_BUFFER
: ç¨äºè½¬æ¢å馿ä½ç Bufferãgl.UNIFORM_BUFFER
: ç¨äºåå¨ç»ä¸åç Bufferãgl.PIXEL_PACK_BUFFER
: ç¨äºåç´ è½¬æ¢æä½ç Bufferãgl.PIXEL_UNPACK_BUFFER
: ç¨äºåç´ è½¬æ¢æä½ç BufferãGLsizeiptr
è®¾å® Buffer å¯¹è±¡çæ°æ®åå¨åºå¤§å°ã
ä¸ä¸ªArrayBuffer
ï¼SharedArrayBuffer
æè
ArrayBufferView
ç±»åçæ°ç»å¯¹è±¡ï¼å°è¢«å¤å¶å° Buffer çæ°æ®åå¨åºãå¦æä¸ºnull
ï¼æ°æ®åå¨åºä»ä¼è¢«å建ï¼ä½æ¯ä¸ä¼è¿è¡åå§ååå®ä¹ã
GLenum
æå®æ°æ®åå¨åºçä½¿ç¨æ¹æ³ãå¯å以ä¸å¼ï¼
gl.STATIC_DRAW
: ç¼å²åºçå
容å¯è½ç»å¸¸ä½¿ç¨ï¼èä¸ä¼ç»å¸¸æ´æ¹ãå
容被åå
¥ç¼å²åºï¼ä½ä¸è¢«è¯»åãgl.DYNAMIC_DRAW
: ç¼å²åºçå
容å¯è½ç»å¸¸è¢«ä½¿ç¨ï¼å¹¶ä¸ç»å¸¸æ´æ¹ãå
容被åå
¥ç¼å²åºï¼ä½ä¸è¢«è¯»åãgl.STREAM_DRAW
: ç¼å²åºçå
容å¯è½ä¸ä¼ç»å¸¸ä½¿ç¨ãå
容被åå
¥ç¼å²åºï¼ä½ä¸è¢«è¯»åãgl.STATIC_READ
: ç¼å²åºçå
容å¯è½ç»å¸¸ä½¿ç¨ï¼èä¸ä¼ç»å¸¸æ´æ¹ãå
容ä»ç¼å²åºè¯»åï¼ä½ä¸åå
¥ãgl.DYNAMIC_READ
: ç¼å²åºçå
容å¯è½ç»å¸¸ä½¿ç¨ï¼å¹¶ä¸ç»å¸¸æ´æ¹ãå
容ä»ç¼å²åºè¯»åï¼ä½ä¸åå
¥ãgl.STREAM_READ
: ç¼å²åºçå
容å¯è½ä¸ä¼ç»å¸¸ä½¿ç¨ãå
容ä»ç¼å²åºè¯»åï¼ä½ä¸åå
¥ãgl.STATIC_COPY
: ç¼å²åºçå
容å¯è½ç»å¸¸ä½¿ç¨ï¼èä¸ä¼ç»å¸¸æ´æ¹ãç¨æ·ä¸ä¼ä»ç¼å²åºè¯»åå
容ï¼ä¹ä¸åå
¥ãgl.DYNAMIC_COPY
: ç¼å²åºçå
容å¯è½ç»å¸¸ä½¿ç¨ï¼å¹¶ä¸ç»å¸¸æ´æ¹ãç¨æ·ä¸ä¼ä»ç¼å²åºè¯»åå
容ï¼ä¹ä¸åå
¥ãgl.STREAM_COPY
: ç¼å²åºçå
容å¯è½ä¸ä¼ç»å¸¸ä½¿ç¨ãç¨æ·ä¸ä¼ä»ç¼å²åºè¯»åå
容ï¼ä¹ä¸åå
¥ãGLuint
æå®è¯»åç¼å²æ¶çåå§å
ç´ ç´¢å¼åç§»éã
length
å¯é
GLuint
é»è®¤ä¸º 0ã
None.
å¼å¸¸size
æå®å¤§å°çæ°æ®åå¨åºï¼å伿åºgl.OUT_OF_MEMORY
å¼å¸¸ãsize
æ¯è´å¼ï¼å伿åºgl.INVALID_VALUE
å¼å¸¸ãtarget
æusage
ä¸å±äºæä¸¾å¼ä¹åï¼å伿åºgl.INVALID_ENUM
å¼å¸¸ãbufferData
var canvas = document.getElementById("canvas");
var gl = canvas.getContext("webgl");
var buffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
gl.bufferData(gl.ARRAY_BUFFER, 1024, gl.STATIC_DRAW);
è·åç¼å²åºä¿¡æ¯
ä½¿ç¨ WebGLRenderingContext.getBufferParameter()
æ¹æ³æ£æ¥å½åç¼å²åºçä½¿ç¨æ
åµåç¼å²åºå¤§å°ã
gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE);
gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE);
è§è æµè§å¨å
¼å®¹æ§ æ´å¤
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