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) |