var gl = canvas.getContext('2d');
gl.wxBindCanvasTexture(gl.TEXTURE_2D, this.canvas2);
这个wxBindCanvasTexture不能用了吗?
报Uncaught TypeError: gl.wxBindCanvasTexture is not a function 这个错误。
我们需求是想自己用2d离屏,渲染到webgl主屏里面,还是说直接canvas全局变量是错的?我们用的是egret引擎,webgl渲染。
以上代码直接运行可测试出来
打印一下是否 gl 是 null?
gl = canvas.getContext('2d')是空的,因为egret用的渲染模式是webgl,我尝试过在egret里面把rendermode改为canvas,那gl = canvas.getContext('webgl')就是空。
canvas2 = null;
ctx2 = null;
aniId = null;
loop = function () {
window.cancelAnimationFrame(this.aniId)
var gl = canvas.getContext('webgl');
if(gl instanceof WebGLRenderingContext){
console.log("true");
}else{
console.log("false");
}
gl.wxBindCanvasTexture(gl.TEXTURE_2D, this.canvas2)
this.aniId = window.requestAnimationFrame(
this.loop.bind(this)
)
}
init() {
console.log("canvas2");
this.canvas2 = wx.createCanvas()
this.ctx2 = this.canvas2.getContext('2d')
this.ctx2.fillStyle = 'green';
this.ctx2.fillRect(0, 100, 100, 100);
this.aniId = window.requestAnimationFrame(
this.loop.bind(this)
)
}
}
var t = new CA();
t.init();
不知道官方是否有看问题,看论坛列表,前后的问题都回答了,就我这个在中间的跨过去了,哭!
var gl = canvas.getContext('webgl');
if(gl instanceof WebGLRenderingContext){
console.log("true");
}else{
console.log("false");
}
我这样子写,控制台打印的是false