initShaders()//對字符串形式的着色器進行初始化
initShaders(gl,vshader,fshader) |
在WebGL系統內部創建和初始化着色器 |
參數 |
gl |
指定渲染上下文 |
vshader |
指定頂點着色器程序代碼(字符串) |
fshader |
指定片原着色器程序代碼(字符串) |
返回值 |
true |
初始化着色器成功 |
false |
初始化着色器失敗 |
gl.drawArrays()是一個強大的函數,他能夠用來描繪各類圖形
gl.drawArrays(mode,first,count) |
執行頂點着色器,按照mode參數指定的方式描繪圖形 |
參數 |
mode |
指定的繪製的方式,能夠接收如下常量符號:gl.POINTS,gl.LINES,gl.LINE_STRIP,gl.LINE_LOOP,gl.TRIANGLES,gl.TRIANGLE_STRIP,gl.TRIANGLE_FAN |
first |
指定從哪一個頂點開始繪製(整型數) |
count |
指定繪製須要用到多少個頂點(整型數) |
返回值 |
無 |
|
錯誤 |
INVALID_ENUM |
傳入的mode參數不是前述參數之一 |
INVALID_VALUE |
參數first或count是負值 |
gl.getAttribLocation()//獲取attribute變量的儲存位置web
gl.getAttribLocation(program,name) |
獲取由name參數指定的attribute變量的儲存地址 |
參數 |
program |
指定包含頂點着色器和片原着色器的色器程序對象 |
name |
指定想要獲取其儲存地址的attribute變量的名稱 |
返回值 |
大於等於0 |
attribute變量的儲存地址 |
-1 |
指定的attribute變量不存在,或者其命名具備gl_或webgl_前綴 |
錯誤 |
INVALID_OPERATION |
程序對象未能成功鏈接 |
|
INVALID_VALUE |
name參數的長度大於attribute變量名的最大長度(默認256字節) |
gl.vertexAttrib3f()//向attribute變量賦值函數
gl.vertexAttrib3f(location,v0,v1,v2) |
將數據(v0,v1,v2)傳給由location參數指定的attribute變量 |
參數 |
location |
指定將要修改的attribute變量的儲存位置 |
v0 |
指定填充attribute變量第一個份量的值 |
v1 |
指定填充attribute變量第二個份量的值 |
v2 |
指定填充attribute變量第三個份量的值 |
返回值 |
無 |
|
錯誤 |
INVALID_OPERATION |
沒有當前的program對象 |
INVALID_VALUE |
location大於等於attribute變量的最大數目(默認爲8) |