我在WinRT WebView中绘制内容。
同一个调用在x86和x64版本上成功绘制,但在ARM构建中我得到IndexSizeError
。
有问题的电话来自PDF.js,看起来像是:
ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight,
0, -height, width, height);
检查JS调试器中的值会给出以下值:
imgToPaint.width == 2132
imgToPaint.height == 2527
paintWidth == 2132
paintHeight == 2527
width == 4264
height == 5053
ctx.canvas.width == 1126
ctx.canvas.height == 1467
根据spec,当IndexSizeError
或sw
(sh
和paintWidth
分别为0)时,paintHeight
会被抛出,这不是这里的情况。
可能导致这种情况的原因,我可以尝试正确诊断它?
我已经确认参数在x86和x64版本上具有相同的值。
将绘制调用重写为一系列较小的绘制调用会使错误消失,但在x64和x86上正确绘制时,在ARM构建中无法正确绘制图像:
ctx.drawImage(imgToPaint, 0, 0, paintWidth/2, paintHeight/2,
0, -height, width/2, height/2);
ctx.drawImage(imgToPaint, paintWidth/2, 0, paintWidth/2, paintHeight/2,
width/2, -height, width/2, height/2);
...
这告诉我,IndexSizeError
是因为耗尽图形内存而被抛出的。我怎么能证实这一点?