Module gfx::pso
[−]
[src]
Pipeline states Pipeline State Objects - typed higher-level version.
A typed PSO is defined by a macro (like gfx_pipeline
)
and generates 3 structures:
- "init" - containing all the information about resource types,
formats, layouts - everything needed for PSO initialization.
- "meta" - mapping the exact shader inputs to the PSO data. The exact
type of the PSO is gfx::PipelineState<R, Meta>
.
- "data" - having the user-provided version of the run-time data
for PSO rendering, mostly consists of resource handles.
A typed PSO is made of individual components, each is represented by the same-named field in all three generated structures. The submodules here define these components grouped by area.
Modules
buffer |
Buffer components for PSO macro. |
resource |
Resource components for PSO macro. |
target |
Render target components for the PSO macro. |
Structs
Descriptor |
All the information surrounding a shader program that is required for PSO creation, including the formats of vertex buffers and pixel targets; |
PipelineState |
Strongly-typed compiled pipeline state. |
RawDataSet |
A complete set of raw data that needs to be specified at run-time
whenever we draw something with a PSO. This is what "data" struct
gets transformed into when we call |
Enums
InitError |
Failure to initilize the link between the shader and the data. |
Traits
DataBind |
The "bind" logic portion of the PSO component. Defines how the user data translates into the raw data set. |
DataLink |
The "link" logic portion of a PSO component. Defines the input data for the component. |
PipelineData |
a service trait implemented the "data" structure of PSO. |
PipelineInit |
A service trait implemented by the "init" structure of PSO. |