Allow OffscreenCanvas to be used by DrawingUtils
PiperOrigin-RevId: 579021013
This commit is contained in:
parent
1cc79001f4
commit
8f564c4b7b
|
@ -116,7 +116,8 @@ export {RGBAColor, CategoryToColorMap};
|
||||||
export class DrawingUtils {
|
export class DrawingUtils {
|
||||||
private categoryMaskShaderContext?: CategoryMaskShaderContext;
|
private categoryMaskShaderContext?: CategoryMaskShaderContext;
|
||||||
private convertToWebGLTextureShaderContext?: MPImageShaderContext;
|
private convertToWebGLTextureShaderContext?: MPImageShaderContext;
|
||||||
private readonly context2d?: CanvasRenderingContext2D;
|
private readonly context2d?: CanvasRenderingContext2D|
|
||||||
|
OffscreenCanvasRenderingContext2D;
|
||||||
private readonly contextWebGL?: WebGL2RenderingContext;
|
private readonly contextWebGL?: WebGL2RenderingContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -139,12 +140,14 @@ export class DrawingUtils {
|
||||||
* `setOptions({ canvas: .. })`).
|
* `setOptions({ canvas: .. })`).
|
||||||
*/
|
*/
|
||||||
constructor(
|
constructor(
|
||||||
cpuContext: CanvasRenderingContext2D,
|
cpuContext: CanvasRenderingContext2D|OffscreenCanvasRenderingContext2D,
|
||||||
gpuContext?: WebGL2RenderingContext);
|
gpuContext?: WebGL2RenderingContext);
|
||||||
constructor(
|
constructor(
|
||||||
cpuOrGpuGontext: CanvasRenderingContext2D|WebGL2RenderingContext,
|
cpuOrGpuGontext: CanvasRenderingContext2D|
|
||||||
|
OffscreenCanvasRenderingContext2D|WebGL2RenderingContext,
|
||||||
gpuContext?: WebGL2RenderingContext) {
|
gpuContext?: WebGL2RenderingContext) {
|
||||||
if (cpuOrGpuGontext instanceof CanvasRenderingContext2D) {
|
if (cpuOrGpuGontext instanceof CanvasRenderingContext2D ||
|
||||||
|
cpuOrGpuGontext instanceof OffscreenCanvasRenderingContext2D) {
|
||||||
this.context2d = cpuOrGpuGontext;
|
this.context2d = cpuOrGpuGontext;
|
||||||
this.contextWebGL = gpuContext;
|
this.contextWebGL = gpuContext;
|
||||||
} else {
|
} else {
|
||||||
|
@ -186,7 +189,8 @@ export class DrawingUtils {
|
||||||
return DrawingUtils.clamp(out, y0, y1);
|
return DrawingUtils.clamp(out, y0, y1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private getCanvasRenderingContext(): CanvasRenderingContext2D {
|
private getCanvasRenderingContext(): CanvasRenderingContext2D
|
||||||
|
|OffscreenCanvasRenderingContext2D {
|
||||||
if (!this.context2d) {
|
if (!this.context2d) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
'CPU rendering requested but CanvasRenderingContext2D not provided.');
|
'CPU rendering requested but CanvasRenderingContext2D not provided.');
|
||||||
|
|
Loading…
Reference in New Issue
Block a user