OffscreenCanvas对2D上下文的支持状态是什么?

时间:2017-10-17 23:27:30

标签: html web html5-canvas webgl

我是网络开发的新手,所以这可能是一个愚蠢的问题。如果已经回答,请告诉我。)

根据OffscreenCanvas的{​​{1}},目前,API仅支持WebGL上下文。 (也许它只是意味着工作者对OffscreenCanvas'2d上下文的支持没有实现,但是我们仍然可以在主线程上使用它?)

  

注意:此API目前是针对WebGL1和WebGL2上下文实现的   只要。有关工作人员的Canvas 2D API支持,请参阅MDN web docs' page

但是当我为OffscreenCanvas阅读bug 801176时,支持2d上下文。

  

enum OffscreenRenderingContextType {“2d”,“webgl”};

我怀疑第二个只是OffscreenCanvas应该支持的提案,第一个是实际支持的内容。我的理解是否正确?如果是这样,我怎么知道特定浏览器是否支持OffscreenCanvas的2d上下文,如Chromium?

让我更加困惑的是,人们称之为常规canvasoffscreenCanvas,并从中获取第二个上下文(the HTML Specsexample1)。但我想在这种情况下,他们只是引用一个没有附加到DOM的常规画布,而不是我想要研究的OffscreenCanvas

2 个答案:

答案 0 :(得分:2)

  

我怀疑第二个只是OffscreenCanvas应该支持的提案,第一个是实际支持的内容。我的理解是否正确?

正确,WHATWG规范是浏览器应该支持的标准。 Firefox#801176存在的原因是因为Firefox不符合WHATWG规范在该领域的要求。

  

让我更加困惑的是人们称之为常规canvasoffscreenCanvas

这些只是名为offscreenCanvas的变量,它包含普通画布。您可以将变量命名为任何名称;这些作者为当前未在屏幕上呈现的画布选择了一个描述性名称。

答案 1 :(得分:1)

更新

看起来OffscreenCanvas将在Chrome 69或Chrome 70中发布,支持2D和WebGL。对于图像,您可以在工作人员中使用fetchImageBitmap来下载图像。

您可以看到how to use OffscreenCanvas on MDN

上一个回答

  

OffscreenCanvas对2d上下文的支持状态是什么?

状态首先是默认情况下,截至2018/04/30,在Chrome 66或Firefox 59中,Firefox或Chrome中未提供OffscreenCanvas支持。目前Chrome Canary 68中既没有开启,也没有开启Firefox每晚,因此不太可能在未来几个月启用。

My own tests表明,如果启用实验性支持,WebGL可以在Chrome中运行,但不适用于Firefox,并且既不支持2D上下文也是如此。由于规范必须改变,因此2D上下文更成问题。例如ctx.drawImage(someImage, ...)OffscreenCanvas毫无意义,因为OffscreenCanvas实际上是在工作者中使用但工作者中没有Images,因为这些是DOM对象。 WebGL部分解决了这个问题,因为有一些方法可以将纹理更新为不涉及图像的WebGL。

整个问题实际上是一种猜测。如果您想知道Firefox或Chrome或Safari或Edge何时发货OffscreenCanvas并获得2d支持,您可以做的最好的事情就是挖掘他们的错误跟踪器。我相信规范可能会改变,就好像你在网上搜索一样,你仍然可以讨论OffscreenCanvas应该如何工作,并涵盖像WebVR这样的案例以及它目前还不能很好地覆盖的其他案例。