再读WebGL之错误/bug调试的API

  对于用惯了各种框架、库的程序员来说,原生WebGL的错误提示确实很不友好,经常一个小bug要找半天才能发现问题所在。给大家提供几个容易被忽略的API,gl.getShaderParameter()gl.getShaderInfoLog()gl.getProgramParametergl.getProgramInfoLog(),利用这几个API我们可以查看日志信息从而发现部分bug产生处。

gl.getShaderParameter(shader,pname)gl.getShaderInfoLog(shader)

  首先介绍这两个成对的API,gl.getShaderParameter()用以返回着色器信息,当其pname参数设置为gl.COMPILE_STATUS时就可以检查着色器编译是否成功(成功返回true)。在发现gl.getShaderParameter()返回false时就可以说明是着色器编译时发生了错误,这个时候就需要再调用gl.getShaderInfoLog()去获取着色器的信息日志,查看具体的错误位置以及错误类型。

gl.getProgramParameter(shader,pname)gl.getProgramInfoLog(shader)

  接下来这两个API功能与使用方法类似上面两个,不过检查对象变成了WebGL的程序对象(program)。将gl.getProgramParameter()的pname属性指定为gl.LINK_STATUS就可以通过返回值判断是连接成功,连接失败时再调用
gl.getProgramInfoLog()去获取程序对象的信息日志,查看具体的错误位置以及错误类型。


  根据博主前期的经验,新手大多数的错误都是拼写错了WebGL那长长的API,所以使用支持webgl补全的编辑器或者安装相应的补全插件将会大大降低你前期的出错率。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值