要给一个DrawNode设置GLProgram,并且在shader中读取纹理信息,如下:
uniform sampler2D uTexture;
void main(){
gl_FragColor = texture2D(uTexture, v_texCoord);
}
在程序运行后发现中发现gl_FragColor 不正确,原因在于DrawNode绘制图形时写入的纹理坐标均为0.
因此,需要重写DrawNode的draw** 函数。
如drawSolidRect为例,代码如下
class VRMaskDrawNode : public DrawNode
{
Vec2 verts[] = {
origin,
Vec2(destination.x, origin.y),
destination,
Vec2(origin.x, destination.y)
};