如何将webgl函数作为变量传递

时间:2014-01-29 14:38:19

标签: javascript webgl

我无法弄清楚如何做到这一点。我一直在非法调用。 假设我从程序中的函数调用函数...

setGlState( cGl.DEPTH_WRITEMASK, true, cGl.depthMask );

所以我将不同的状态和函数传递给setGlState函数,以便它可以做出一些决定并在需要设置状态时调用gl函数。

setGlState = function ( cap, value, setterFunc ) {
    ....

    if( needsToBeSent ) {
        setterFunc( value ) 
    }
}

由于某种原因,此代码不起作用。我需要绑定函数还是调用函数?函数是否在gl上下文中是一个问题。我

1 个答案:

答案 0 :(得分:1)

您需要传递一个新函数,该函数将在正确的上下文中调用旧函数(因此函数内thiscGl)。

bind会为你做到这一点。

setGlState( cGl.DEPTH_WRITEMASK.bind(cGl), true, cGl.depthMask.bind(cGl) );

上面链接的文档包含一个本机不支持bind的浏览器的垫片。