Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.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
在桌面Safari上,将三个JS渲染画布复制到另一个画布失败_Safari_Three.js_Html5 Canvas - Fatal编程技术网

在桌面Safari上,将三个JS渲染画布复制到另一个画布失败

在桌面Safari上,将三个JS渲染画布复制到另一个画布失败,safari,three.js,html5-canvas,Safari,Three.js,Html5 Canvas,我需要使用canvas上下文的drawImage方法将使用three.js渲染的画布复制到另一个画布 ctx.drawImage(renderer.domElement, 0, 0); 它在Chrome和Firefox上的效果与预期一样,但在我的桌面Safari上根本不起作用。我试图指定纹理格式,但没有任何区别。有人知道诀窍吗 这是一个带有three.js脚本的代码笔 这段代码在safari上运行,但它会将图像翻转过来,帧速率会降低50%,因此绝对不理想 var gl=renderer.ge

我需要使用canvas上下文的drawImage方法将使用three.js渲染的画布复制到另一个画布

ctx.drawImage(renderer.domElement, 0, 0);
它在Chrome和Firefox上的效果与预期一样,但在我的桌面Safari上根本不起作用。我试图指定纹理格式,但没有任何区别。有人知道诀窍吗

这是一个带有three.js脚本的代码笔


这段代码在safari上运行,但它会将图像翻转过来,帧速率会降低50%,因此绝对不理想

var gl=renderer.getContext();
var width=renderer.domeElement.width;
var height=renderer.domeElement.height;
变量大小=宽度*高度*4;
var像素=新的UINT8阵列(大小);
var image=ctx.createImageData(宽度、高度);
gl.readPixels(0,0,宽度,高度,gl.RGBA,gl.UNSIGNED_字节,像素);
对于(变量i=0;i
为什么不使用
canvas.getImageData

var width = renderer.domElement.width;
var height = renderer.domElement.height;
var imgData = gl.getImageData(0, 0, width , height);
ctx.drawImage(imgData, 10, 70);
1.“不起作用”是什么意思?2.代码笔在OS X 10.10.4/Safari 8.0.7上为我正确渲染。
var width = renderer.domElement.width;
var height = renderer.domElement.height;
var imgData = gl.getImageData(0, 0, width , height);
ctx.drawImage(imgData, 10, 70);