cc.RenderTexture 如何清理上一帧残留

使用cc.RenderTexture动态创建贴图并显示,但会一直有上一帧的残留,用cc.Graphics能用clear()清理掉,但不知道这个该如何处理了

@ccclass
export default class newClass extends cc.Component {
@property({
type: cc.Texture2D
})
tex: cc.Texture2D = null;

public start (): void {
    this.render = new cc.RenderTexture();
}

public update (dt: number): void {
    let gl = cc.game._renderContext;
    this.render.initWithSize(600, 600, gl.STENCIL_INDEX8);
    this.render.drawTextureAt(this.tex, 0, 0);
    if(!this.sprite.spriteFrame) {
        this.sprite.spriteFrame = new cc.SpriteFrame(this.render, cc.rect(0,0,600,600));
    }
}

}

问题解决了,可以无视了

解决方案呢?

方案不成熟,还有问题,估计跟用法有关,会不定时报错
这样用:
this.data = new Uint8Array(6006004);
this.data.fill(0);
let ret = this.render.initWithData(this.data, cc.Texture2D.PixelFormat.RGBA8888, 600, 600);

报错信息如下

WebGL: INVALID_VALUE: texSubImage2D: size < 0
_setSubImage @ render-engine.js:8264
updateSubImage @ render-engine.js:8213
drawTextureAt @ CCRenderTexture.js:86

参考官方例子看怎么写的吧

搞定了,把坐标计算错了,导致绘到纹理外面去了

:+1: