这是
实验性技术
检查
浏览器兼容性表格
要小心谨慎在生产中使用这之前。
OffscreenCanvas.getContext()
method returns a drawing context for an offscreen canvas, or
null
if the context identifier is not supported.
注意 : This API is currently implemented for WebGL1 and WebGL2 contexts only. See bug 801176 for Canvas 2D API support from workers.
offscreen.getContext(contextType, contextAttributes);
contextType
DOMString
containing the context identifier defining the drawing context associated to the canvas. Possible values are:
"2d"
创建
CanvasRenderingContext2D
object representing a two-dimensional rendering context.
"webgl"
创建
WebGLRenderingContext
object representing a three-dimensional rendering context. This context is only available on browsers that implement
WebGL
version 1 (OpenGL ES 2.0).
"webgl2"
创建
WebGL2RenderingContext
object representing a three-dimensional rendering context. This context is only available on browsers that implement
WebGL
version 2 (OpenGL ES 3.0).
"bitmaprenderer"
创建
ImageBitmapRenderingContext
which only provides functionality to replace the content of the canvas with a given
ImageBitmap
.
Note: The identifiers
"experimental-webgl"
or
"experimental-webgl2"
are also used in implementations of WebGL. These implementations have not reached test suite conformance, or the graphic drivers situation on the platform is not yet stable. The
Khronos Group
certifies WebGL implementations under certain
conformance rules
.
contextAttributes
You can use several context attributes when creating your rendering context, for example:
offscreen.getContext("webgl",
{ antialias: false,
depth: false });
2d context attributes:
alpha
: Boolean that indicates if the canvas contains an alpha channel. If set to
false
, the browser now knows that the backdrop is always opaque, which can speed up drawing of transparent content and images then.
willReadFrequently
: Boolean that indicates whether or not a lot of read-back operations are planned. This will force the use of a software (instead of hardware accelerated) 2D canvas and can save memory when calling
getImageData()
frequently. This option is only available, if the flag
gfx.canvas.willReadFrequently.enable
被设为
true
(which, by default, is only the case for B2G/Firefox OS).
storage
: String that indicates which storage is used ("persistent" by default).
alpha
: Boolean that indicates if the canvas contains an alpha buffer.
depth
: Boolean that indicates that the drawing buffer has a depth buffer of at least 16 bits.
stencil
: Boolean that indicates that the drawing buffer has a stencil buffer of at least 8 bits.
antialias
: Boolean that indicates whether or not to perform anti-aliasing.
premultipliedAlpha
: Boolean that indicates that the page compositor will assume the drawing buffer contains colors with pre-multiplied alpha.
preserveDrawingBuffer
: If the value is true the buffers will not be cleared and will preserve their values until cleared or overwritten by the author.
failIfMajorPerformanceCaveat
: Boolean that indicates if a context will be created if the system performance is low.
A
RenderingContext
which is either a
CanvasRenderingContext2D
for
"2d"
,
WebGLRenderingContext
for
"webgl"
and
"experimental-webgl"
,
WebGL2RenderingContext
for
"webgl2"
and
"experimental-webgl2"
,或
ImageBitmapRenderingContext
for
"bitmaprenderer"
.
若
contextType
doesn't match a possible drawing context,
null
被返回。
var offscreen = new OffscreenCanvas(256, 256);
var gl = offscreen.getContext("webgl");
gl; // WebGLRenderingContext
gl.canvas; // OffscreenCanvas
| 规范 | 状态 | 注释 |
|---|---|---|
|
HTML 实时标准
The definition of 'OffscreenCanvas.getContext()' in that specification. |
实时标准 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
getContext
|
Chrome 69 | Edge ≤79 |
Firefox
部分支持
44
注意事项
Disabled
|
IE 不支持 No | Opera 56 | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 69 |
Firefox Android
部分支持
44
注意事项
Disabled
|
Opera Android 48 | Safari iOS 不支持 No | Samsung Internet Android 10.0 |
| bitmaprenderer context | Chrome 76 | Edge ≤79 |
Firefox
部分支持
46
注意事项
Disabled
|
IE 不支持 No | Opera 63 | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 76 |
Firefox Android
部分支持
46
注意事项
Disabled
|
Opera Android 54 | Safari iOS 不支持 No | Samsung Internet Android 12.0 |
| WebGL context | Chrome 69 | Edge ≤79 |
Firefox
部分支持
44
注意事项
Disabled
|
IE 不支持 No | Opera 56 | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 69 |
Firefox Android
部分支持
44
注意事项
Disabled
|
Opera Android 48 | Safari iOS 不支持 No | Samsung Internet Android 10.0 |
| webgl2 context | Chrome 69 | Edge ≤79 |
Firefox
部分支持
44
注意事项
Disabled
|
IE 不支持 No | Opera 56 | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 69 |
Firefox Android
部分支持
44
注意事项
Disabled
|
Opera Android 48 | Safari iOS 不支持 No | Samsung Internet Android 10.0 |
| 2d context | Chrome 69 | Edge ≤79 | Firefox 不支持 No | IE 不支持 No | Opera 56 | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 69 | Firefox Android 不支持 No | Opera Android 48 | Safari iOS 不支持 No | Samsung Internet Android 10.0 |
完整支持
部分支持
不支持
实验。期望将来行为有所改变。
见实现注意事项。
用户必须明确启用此特征。
OffscreenCanvas
HTMLCanvasElement.getContext()
CanvasRenderingContext2D
,
WebGLRenderingContext
,
WebGL2RenderingContext
,和
ImageBitmapRenderingContext
OffscreenCanvas