---
url: /api/passes/rawRenderPass/type-aliases/RawRenderPass.md
---
# RawRenderPass\<U *extends* [`UniformValues`](../../../types/types/type-aliases/UniformValues.md) = `Record`<`string`, `never`>>

```ts
type RawRenderPass<U extends UniformValues = Record<string, never>> =
  Disposable & {
    render: (opts?: RawRenderOptions) => void;
    target: RenderTarget | null;
    setTarget: (target: RenderTarget | null) => void;
    setSize: ({ width, height }: { width: number; height: number }) => void;
    getResolution: () => [number, number];
    uniforms: U;
    vertex: string;
    fragment: string;
    onUpdated: (callback: UpdatedCallback<U>) => void;
    onBeforeRender: (callback: RenderCallback) => void;
    onAfterRender: (callback: RenderCallback) => void;
    onInit: (callback: (gl: WebGL2RenderingContext) => void) => void;
    onResize: (callback: (width: number, height: number) => void) => void;
    onDispose: (callback: () => void) => void;
    initialize: (gl: WebGL2RenderingContext) => void;
  };
```

A low-level rendering pass that encapsulates shaders, concrete uniforms, and attributes.

## Type Declaration

| Name               | Type                                                                                                         | Description                                                                 |
| ------------------ | ------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------- |
| `render()`         | (`opts?`: [`RawRenderOptions`](RawRenderOptions.md)) => `void`                                               | Executes the render pass.                                                   |
| `target`           | | [`RenderTarget`](../../../core/renderTarget/type-aliases/RenderTarget.md) | `null`                       | The current render target for this pass.                                    |
| `setTarget()`      | (`target`: | [`RenderTarget`](../../../core/renderTarget/type-aliases/RenderTarget.md) | `null`) => `void` | Updates the current render target.                                          |
| `setSize()`        | (`{ width, height }`: { `width`: `number`; `height`: `number`; }) => `void`                                | Resizes the render target associated with this pass.                        |
| `getResolution()`  | () => \[`number`, `number`]                                                                                 | Returns the current dimensions used by the pass.                            |
| `uniforms`         | `U`                                                                                                          | The reactive uniforms proxy for this pass.                                  |
| `vertex`           | `string`                                                                                                     | The vertex shader source.                                                   |
| `fragment`         | `string`                                                                                                     | The fragment shader source.                                                 |
| `onUpdated()`      | (`callback`: [`UpdatedCallback`](UpdatedCallback.md)<`U`>) => `void`                                       | Registers a callback called whenever concrete uniforms are updated.         |
| `onBeforeRender()` | (`callback`: [`RenderCallback`](RenderCallback.md)) => `void`                                                | Registers a callback called just before rendering.                          |
| `onAfterRender()`  | (`callback`: [`RenderCallback`](RenderCallback.md)) => `void`                                                | Registers a callback called just after rendering.                           |
| `onInit()`         | (`callback`: (`gl`: `WebGL2RenderingContext`) => `void`) => `void`                                           | Registers a callback called when the pass is initialized with a GL context. |
| `onResize()`       | (`callback`: (`width`: `number`, `height`: `number`) => `void`) => `void`                                    | Registers a callback called when the pass is resized.                       |
| `onDispose()`      | (`callback`: () => `void`) => `void`                                                                         | Registers a callback called when the pass is disposed.                      |
| `initialize()`     | (`gl`: `WebGL2RenderingContext`) => `void`                                                                   | Initializes the pass with a WebGL2 context.                                 |

## Type Parameters

### U

`U` *extends* [`UniformValues`](../../../types/types/type-aliases/UniformValues.md) = `Record`<`string`, `never`>
