---
url: /api/passes/compositor/type-aliases/Compositor.md
---
# Compositor

```ts
type Compositor = Disposable & {
  render: (opts?: RenderOptions) => void;
  setSize: (size: { width: number; height: number }) => void;
  allPasses: (RenderPass<any, any> | EffectPass | CompositeEffectPass)[];
  onBeforeRender: (callback: () => void) => void;
  onAfterRender: (callback: () => void) => void;
};
```

## Type Declaration

| Name               | Type                                                                                                                                                                                                                                         | Description                                                      |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| `render()`         | (`opts?`: [`RenderOptions`](../../renderPass/type-aliases/RenderOptions.md)) => `void`                                                                                                                                                       | Renders the main pass and every post-processing effect in order. |
| `setSize()`        | (`size`: { `width`: `number`; `height`: `number`; }) => `void`                                                                                                                                                                             | Resizes every pass and render target managed by the compositor.  |
| `allPasses`        | ( | [`RenderPass`](../../renderPass/type-aliases/RenderPass.md)<`any`, `any`> | [`EffectPass`](../../effectPass/type-aliases/EffectPass.md) | [`CompositeEffectPass`](../../compositeEffectPass/type-aliases/CompositeEffectPass.md))\[] | Top-level passes supplied to the compositor.                     |
| `onBeforeRender()` | (`callback`: () => `void`) => `void`                                                                                                                                                                                                         | Registers a callback called before the complete chain renders.   |
| `onAfterRender()`  | (`callback`: () => `void`) => `void`                                                                                                                                                                                                         | Registers a callback called after the complete chain renders.    |
