logo

Module luminance::backend::pipeline[][src]

Expand description

Pipeline backend interface.

This interface defines the low-level API pipelines must implement to be usable.

A (graphics) pipeline is a strongly typed object that represents a set of actions to perform to render a scene into a framebuffer. This module exposes the required traits to implement to perform various actions in the pipeline.

The most important one is PipelineBase, that provides pipeline creation. This doesn’t feel like much but it’s actually an important part of the backend interface. Besides telling the backend to prepare the pipeline creation, this also serves for the backend to allocate and cache some values in their state so that they don’t get created every time a user starts a pipeline, making dynamic pipeline creation cheap and possible.

The Pipeline trait is the « entry-point » of a render. It takes a Framebuffer and a PipelineState and put both objects to the backend to start a render.

PipelineTexture, PipelineShaderData etc. are used to scope-bind specific resources, such as textures and shader data.

Traits

Start a pipeline.

The base trait of pipelines.

Operations that can be run on pipelines and shader data.

Operations that can be run on pipelines and textures.