LogoPixi’VN
pixi-jsClasses

Class: RenderTargetSystem<RENDER_TARGET>

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:154

A system that manages render targets. A render target is essentially a place where the shaders can color in the pixels. The render target system is responsible for binding the render target to the renderer, and managing the viewport. Render targets can be pushed and popped.

To make it easier, you can also bind textures and canvases too. This will automatically create a render target for you. The render target itself is a lot more powerful than just a texture or canvas, as it can have multiple textures attached to it. It will also give ou fine grain control over the stencil buffer / depth texture.

Example


// create a render target
const renderTarget = new RenderTarget({
  colorTextures: [new TextureSource({ width: 100, height: 100 })],
});

// bind the render target
renderer.renderTarget.bind(renderTarget);

// draw something!

Advanced

Extended by

Type Parameters

RENDER_TARGET

RENDER_TARGET extends RendererRenderTarget

Implements

Constructors

Constructor

> new RenderTargetSystem<RENDER_TARGET>(renderer): RenderTargetSystem<RENDER_TARGET>

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:197

Parameters

renderer

Renderer

Returns

RenderTargetSystem<RENDER_TARGET>

Properties

adaptor

> readonly adaptor: RenderTargetAdaptor<RENDER_TARGET>

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:181

a reference to the adaptor that interfaces with WebGL / WebGP


defaultClearColor

> readonly defaultClearColor: RgbaArray

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:179

the default clear color for render targets


layer

> layer: number

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:170

the current array layer being rendered to (for array-backed targets)


mipLevel

> mipLevel: number

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:168

the current mip level being rendered to (for texture subresources)


onRenderTargetChange

> readonly onRenderTargetChange: SystemRunner

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:175

a runner that lets systems know if the active render target has changed. Eg the Stencil System needs to know so it can manage the stencil buffer


projectionMatrix

> readonly projectionMatrix: Matrix

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:177

the projection matrix that is used by the shaders based on the active render target and the viewport


renderingToScreen

> renderingToScreen: boolean

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:160

A boolean that lets the dev know if the current render pass is rendering to the screen. Used by some plugins


renderSurface

> renderSurface: RenderSurface

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:164

the current active render surface that the render target is created from


renderTarget

> renderTarget: RenderTarget

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:162

the current active render target


rootRenderTarget

> rootRenderTarget: RenderTarget

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:156

When rendering of a scene begins, this is where the root render surface is stored


rootViewPort

> rootViewPort: Rectangle

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:158

This is the root viewport for the render pass


viewport

> readonly viewport: Rectangle

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:166

the current viewport that the gpu is using

Methods

bind()

> bind(renderSurface, clear?, clearColor?, frame?, mipLevel?, layer?): RenderTarget

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:245

Binding a render surface! This is the main function of the render target system. It will take the RenderSurface (which can be a texture, canvas, or render target) and bind it to the renderer. Once bound all draw calls will be rendered to the render surface.

If a frame is not provided and the render surface is a Texture, the frame of the texture will be used.

IMPORTANT:

  • frame is treated as base mip (mip 0) pixel space.
  • When mipLevel > 0, the viewport derived from frame is scaled by (2^{mipLevel}) and clamped to the mip dimensions. This keeps "render the same region" semantics consistent across mip levels.
  • When renderSurface is a Texture, renderer.render({ container, target: texture, mipLevel }) will render into the underlying TextureSource (Pixi will create/use a RenderTarget for the source) using the texture's frame to define the region (in mip 0 space).

Parameters

renderSurface

RenderSurface

the render surface to bind

clear?

CLEAR_OR_BOOL

the clear mode to use. Can be true or a CLEAR number 'COLOR | DEPTH | STENCIL' 0b111

clearColor?

RgbaArray

the color to clear to

frame?

Rectangle

the frame to render to

mipLevel?

number

the mip level to render to

layer?

number

the layer (or slice) of the render surface to render to. For array textures, 3D textures, or cubemaps, this specifies the target layer or face. Defaults to 0 (the first layer/face). Ignored for surfaces that do not support layers.

Returns

RenderTarget

the render target that was bound


clear()

> clear(target?, clear?, clearColor?, mipLevel?, layer?): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:246

Parameters

target?

RenderSurface

clear?

CLEAR_OR_BOOL

clearColor?

RgbaArray

mipLevel?

number

layer?

number

Returns

void


contextChange()

> protected contextChange(): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:247

Returns

void


copyToTexture()

> copyToTexture(sourceRenderSurfaceTexture, destinationTexture, originSrc, size, originDest): Texture<TextureSource<any>>

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:308

Copies a render surface to another texture.

NOTE: for sourceRenderSurfaceTexture, The render target must be something that is written too by the renderer

The following is not valid:

Parameters

sourceRenderSurfaceTexture

RenderTarget

the render surface to copy from

destinationTexture

Texture

the texture to copy to

originSrc

the origin of the copy

x

number

the x origin of the copy

y

number

the y origin of the copy

size

the size of the copy

height

number

the height of the copy

width

number

the width of the copy

originDest

the destination origin (top left to paste from!)

x

number

the x origin of the paste

y

number

the y origin of the paste

Returns

Texture<TextureSource<any>>

Example

const canvas = document.createElement('canvas')
canvas.width = 200;
canvas.height = 200;

const ctx = canvas2.getContext('2d')!
ctx.fillStyle = 'red'
ctx.fillRect(0, 0, 200, 200);

const texture = RenderTexture.create({
  width: 200,
  height: 200,
})
const renderTarget = renderer.renderTarget.getRenderTarget(canvas2);

renderer.renderTarget.copyToTexture(renderTarget,texture, {x:0,y:0},{width:200,height:200},{x:0,y:0});

The best way to copy a canvas is to create a texture from it. Then render with that.

Parsing in a RenderTarget canvas context (with a 2d context)

destroy()

> destroy(): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:324

nukes the render target system

Returns

void

Implementation of

System.destroy


ensureDepthStencil()

> ensureDepthStencil(): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:322

ensures that we have a depth stencil buffer available to render to This is used by the mask system to make sure we have a stencil buffer.

Returns

void


finishRenderPass()

> finishRenderPass(): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:199

called when dev wants to finish a render pass

Returns

void


getGpuRenderTarget()

> getGpuRenderTarget(renderTarget): RENDER_TARGET

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:326

Parameters

renderTarget

RenderTarget

Returns

RENDER_TARGET


getRenderTarget()

> getRenderTarget(renderSurface): RenderTarget

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:268

Gets the render target from the provide render surface. Eg if its a texture, it will return the render target for the texture. If its a render target, it will return the same render target.

Parameters

renderSurface

RenderSurface

the render surface to get the render target for

Returns

RenderTarget

the render target for the render surface


pop()

> pop(): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:260

Pops the current render target from the renderer and restores the previous render target.

Returns

void


postrender()

> postrender(): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:219

Returns

void


push()

> push(renderSurface, clear?, clearColor?, frame?, mipLevel?, layer?): RenderTarget

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:258

Push a render surface to the renderer. This will bind the render surface to the renderer,

Parameters

renderSurface

RenderSurface

the render surface to push

clear?

boolean | CLEAR

the clear mode to use. Can be true or a CLEAR number 'COLOR | DEPTH | STENCIL' 0b111

clearColor?

RgbaArray

the color to clear to

frame?

Rectangle

the frame to use when rendering to the render surface

mipLevel?

number

the mip level to render to

layer?

number

The layer of the render surface to render to. For array textures or cube maps, this specifies which layer or face to target. Defaults to 0 (the first layer).

Returns

RenderTarget


renderStart()

> renderStart(options): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:211

called when the renderer starts to render a scene.

Parameters

options
clear

CLEAR_OR_BOOL

the clear mode to use. Can be true or a CLEAR number 'COLOR | DEPTH | STENCIL' 0b111

clearColor

RgbaArray

the color to clear to

frame?

Rectangle

the frame to render to

layer?

number

The layer of the render target to render to. Used for array or 3D textures, or when rendering to a specific layer of a layered render target. Optional.

mipLevel?

number

the mip level to render to

target

RenderSurface

the render target to render to

Returns

void


resetState()

> resetState(): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/renderTarget/RenderTargetSystem.d.ts:327

Returns

void