---
title: "ICanvasRenderer | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/ICanvasRenderer/"
---

# ICanvasRenderer

> `CanvasRenderingContext2D`

## Interfaces

### ICanvasRenderer

#### Methods

##### applyContextScale()

```ts
applyContextScale(
   context, 
   workspace, 
   offset, 
   clipByWorkspace?, 
   dpi?): CanvasRenderingContext2D;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | `CanvasRenderingContext2D` |
| `workspace` | [`IWorkspace`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/IWorkspace.md#iworkspace) |
| `offset` | `PointF` |
| `clipByWorkspace?` | `boolean` |
| `dpi?` | `number` |

###### Returns

##### drawWaitClock()

```ts
drawWaitClock(
   context, 
   center, 
   mul): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | `CanvasRenderingContext2D` |
| `center` | `PointF` |
| `mul` | `number` |

###### Returns

`void`

##### redrawInactiveCanvas()

```ts
redrawInactiveCanvas(
   layers, 
   surfaceCanvas, 
   inactiveCanvas, 
   workspace, 
   margins, 
   mul, 
   productHandler, 
   offset, 
   mockupMarginWorkaroundEnabled?, 
   canvasBackground?, 
   dpi?): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `layers` | [`Layer`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/Layer.md#layer)[] |
| `surfaceCanvas` | `HTMLCanvasElement` |
| `inactiveCanvas` | `HTMLCanvasElement` |
| `workspace` | [`IWorkspace`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms/IWorkspace.md#iworkspace) |
| `margins` | [`IMargins`](#imargins) |
| `mul` | `number` |
| `productHandler` | [`IProductHandler`](#iproducthandler) |
| `offset` | `PointF` |
| `mockupMarginWorkaroundEnabled?` | `boolean` |
| `canvasBackground?` | `string` |
| `dpi?` | `number` |

###### Returns

`void`

***

### IMargins

#### Properties

##### bottomMargin

```ts
bottomMargin: number;
```

##### leftMargin

```ts
leftMargin: number;
```

##### marginColor

```ts
marginColor: string;
```

##### marginWidth

```ts
marginWidth: number;
```

##### rightMargin

```ts
rightMargin: number;
```

##### topMargin

```ts
topMargin: number;
```

***

### IProductHandler

#### Methods

##### isMasked()

```ts
isMasked(container): boolean;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `container` | `Container` |

###### Returns

`boolean`
