Skip to main content

Abstract Class: RenderPipeline

Defined in: modules/core/src/adapter/resources/render-pipeline.ts:82

A compiled and linked shader program

Extends​

Constructors​

Constructor​

new RenderPipeline(device, props): RenderPipeline

Defined in: modules/core/src/adapter/resources/render-pipeline.ts:119

Parameters​

device​

Device

props​

RenderPipelineProps

Returns​

RenderPipeline

Overrides​

Resource.constructor

Properties​

bufferLayout​

readonly bufferLayout: BufferLayout[]

Defined in: modules/core/src/adapter/resources/render-pipeline.ts:93

Buffer map describing buffer interleaving etc


destroyed​

destroyed: boolean = false

Defined in: modules/core/src/adapter/resources/resource.ts:131

Whether this resource has been destroyed

Inherited from​

Resource.destroyed


device​

abstract readonly device: Device

Defined in: modules/core/src/adapter/resources/resource.ts:124

The device that this resource is associated with

Inherited from​

Resource.device


fs​

abstract readonly fs: Shader | null

Defined in: modules/core/src/adapter/resources/render-pipeline.ts:88


handle​

abstract readonly handle: unknown

Defined in: modules/core/src/adapter/resources/resource.ts:126

The handle for the underlying resource, e.g. WebGL object or WebGPU handle

Inherited from​

Resource.handle


hash​

hash: string = ''

Defined in: modules/core/src/adapter/resources/render-pipeline.ts:97

The hash of the pipeline


id​

id: string

Defined in: modules/core/src/adapter/resources/resource.ts:118

props.id, for debugging.

Inherited from​

Resource.id


linkStatus​

linkStatus: "error" | "pending" | "success" = 'pending'

Defined in: modules/core/src/adapter/resources/render-pipeline.ts:95

The linking status of the pipeline. 'pending' if linking is asynchronous, and on production


props​

readonly props: Required<Props>

Defined in: modules/core/src/adapter/resources/resource.ts:120

The props that this resource was created with

Inherited from​

Resource.props


shaderLayout​

shaderLayout: ShaderLayout

Defined in: modules/core/src/adapter/resources/render-pipeline.ts:91

The merged layout


sharedRenderPipeline​

sharedRenderPipeline: SharedRenderPipeline | null = null

Defined in: modules/core/src/adapter/resources/render-pipeline.ts:99

Optional shared backend implementation


userData​

readonly userData: Record<string, unknown> = {}

Defined in: modules/core/src/adapter/resources/resource.ts:122

User data object, reserved for the application

Inherited from​

Resource.userData


vs​

abstract readonly vs: Shader

Defined in: modules/core/src/adapter/resources/render-pipeline.ts:87


defaultProps​

static defaultProps: Required<RenderPipelineProps>

Defined in: modules/core/src/adapter/resources/render-pipeline.ts:166

Default properties for resource

Overrides​

Resource.defaultProps

Accessors​

[toStringTag]​

Get Signature​

get [toStringTag](): string

Defined in: modules/core/src/adapter/resources/render-pipeline.ts:83

Returns​

string

Overrides​

Resource.[toStringTag]


isErrored​

Get Signature​

get isErrored(): boolean

Defined in: modules/core/src/adapter/resources/render-pipeline.ts:111

Whether shader or pipeline compilation/linking has failed

Returns​

boolean


isHandleBorrowed​

Get Signature​

get isHandleBorrowed(): boolean

Defined in: modules/core/src/adapter/resources/resource.ts:147

Whether luma.gl may only reference the opaque externally owned resource handle.

Returns​

boolean

Inherited from​

Resource.isHandleBorrowed


isPending​

Get Signature​

get isPending(): boolean

Defined in: modules/core/src/adapter/resources/render-pipeline.ts:102

Whether shader or pipeline compilation/linking is still in progress

Returns​

boolean


ownsHandle​

Get Signature​

get ownsHandle(): boolean

Defined in: modules/core/src/adapter/resources/resource.ts:140

Whether luma.gl created and owns the underlying resource handle.

Returns​

boolean

Inherited from​

Resource.ownsHandle

Methods​

attachResource()​

attachResource(resource): void

Defined in: modules/core/src/adapter/resources/resource.ts:200

Attaches a resource. Attached resources are auto destroyed when this resource is destroyed Called automatically when sub resources are auto created but can be called by application

Parameters​

resource​

Resource<ResourceProps>

Returns​

void

Inherited from​

Resource.attachResource


delete()​

delete(): this

Defined in: modules/core/src/adapter/resources/resource.ts:181

Returns​

this

Deprecated​

Use destroy()

Inherited from​

Resource.delete


destroy()​

destroy(): void

Defined in: modules/core/src/adapter/resources/resource.ts:173

destroy can be called on any resource to release it before it is garbage collected.

Returns​

void

Inherited from​

Resource.destroy


destroyAttachedResource()​

destroyAttachedResource(resource): void

Defined in: modules/core/src/adapter/resources/resource.ts:214

Destroys a resource (only if owned), and removes from the owned (auto-destroy) list for this resource.

Parameters​

resource​

Resource<ResourceProps>

Returns​

void

Inherited from​

Resource.destroyAttachedResource


destroyAttachedResources()​

destroyAttachedResources(): void

Defined in: modules/core/src/adapter/resources/resource.ts:221

Destroy all owned resources. Make sure the resources are no longer needed before calling.

Returns​

void

Inherited from​

Resource.destroyAttachedResources


detachResource()​

detachResource(resource): void

Defined in: modules/core/src/adapter/resources/resource.ts:207

Detach an attached resource. The resource will no longer be auto-destroyed when this resource is destroyed.

Parameters​

resource​

Resource<ResourceProps>

Returns​

void

Inherited from​

Resource.detachResource


draw()​

abstract draw(options): boolean

Defined in: modules/core/src/adapter/resources/render-pipeline.ts:130

Parameters​

options​
_bindGroupCacheKeys?​

Partial<Record<number, object>>

Optional stable cache keys for backend bind-group reuse

baseVertex?​

number

bindGroups?​

Partial<Record<number, Bindings>>

Deprecated

Set bindings on RenderPass instead.

bindings?​

Bindings

Deprecated

Set bindings on RenderPass instead.

firstIndex?​

number

First index to draw from

firstInstance?​

number

First instance to draw from

firstVertex?​

number

First vertex to draw from

indexCount?​

number

Number of "rows" in index buffer

instanceCount?​

number

Number of "rows" in 'instance' buffers

isInstanced?​

boolean

Use instanced rendering?

parameters?​

RenderPipelineParameters

Parameters to be set during draw call. Note that most parameters can only be overridden in WebGL.

renderPass?​

RenderPass

Render pass to draw into (targeting screen or framebuffer)

topology?​

PrimitiveTopology

Topology. Note can only be overridden in WebGL.

transformFeedback?​

TransformFeedback

Transform feedback. WebGL only.

uniforms?​

Record<string, unknown>

WebGL-only uniforms

vertexArray​

VertexArray

vertex attributes

vertexCount?​

number

Number of "rows" in 'vertex' buffers

Returns​

boolean

Deprecated​

Use RenderPass.setPipeline(), setBindings(), setVertexArray(), and draw(). Will be removed in the next major release.


getProps()​

getProps(): object

Defined in: modules/core/src/adapter/resources/resource.ts:190

Combines a map of user props and default props, only including props from defaultProps

Returns​

object

returns a map of overridden default props

Inherited from​

Resource.getProps


toJSON()​

toJSON(): string

Defined in: modules/core/src/adapter/resources/resource.ts:113

Compact serialization for assertion diffs and structured debug logs.

Returns​

string

Inherited from​

Resource.toJSON


toString()​

toString(): string

Defined in: modules/core/src/adapter/resources/resource.ts:108

Returns​

string

Inherited from​

Resource.toString