Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将webgl画布传递给CanvasRenderingContext2D.drawImage()_Javascript_Html_Canvas_Webgl - Fatal编程技术网

Javascript 将webgl画布传递给CanvasRenderingContext2D.drawImage()

Javascript 将webgl画布传递给CanvasRenderingContext2D.drawImage(),javascript,html,canvas,webgl,Javascript,Html,Canvas,Webgl,我试图将一个画布的内容复制到另一个画布 源画布具有webgl上下文 目标画布具有2d上下文 我的代码如下所示: destinationContext.drawImage(sourceCanvas, 0, 0); 这在Firefox和IE中有效,但在Chrome中不起作用。为什么不呢 谢谢 这里有一些工作代码 const gl=document.querySelector(#a”).getContext(“webgl”); const ctx=document.querySelector(“#

我试图将一个画布的内容复制到另一个画布

源画布具有webgl上下文

目标画布具有2d上下文

我的代码如下所示:

destinationContext.drawImage(sourceCanvas, 0, 0);
这在Firefox和IE中有效,但在Chrome中不起作用。为什么不呢


谢谢

这里有一些工作代码

const gl=document.querySelector(#a”).getContext(“webgl”);
const ctx=document.querySelector(“#b”).getContext(“2d”);
//在webgl画布中放置一个矩形
总帐启用(总帐剪刀测试);
德国劳埃德大学剪刀学院(10,20100,50);
gl.clearColor(0,0,1,1);
总账清除(总账颜色缓冲位);
//将webgl画布复制到二维画布
ctx.drawImage(gl.canvas,0,0)
画布{
边框:1px纯黑;
保证金:5px;
}


在上下文创建参数中是否启用了
preserveDrawingBuffer
?是的,我启用了。没什么区别。你能把你的代码贴到什么地方吗。无论是在SO中还是在JSFIDLE中,还是在其他地方?我遇到了一个与您的答案所解决的问题非常相似的问题,尽管我的ctx.drawImage(gl.canvas,0,0)创建了一个满是零的数组。gl.readPixels工作正常,但在性能方面相当昂贵。preserveDrawingBuffer设置为true。你知道我遗漏了什么吗?在一个新问题中发表你的观点;如果WebGL中的alpha为零,那么画布将出现使用预乘alpha的问题。它将把你的颜色乘以阿尔法。alpha为0意味着它将使你的颜色为零。这与普通2D画布相同。调用getImageData,将所有alpha设置为零,putImageData,然后再次调用getImageData,现在所有内容都将为零。