32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
|
---
|
||
|
title: "Graphics Pipeline"
|
||
|
date: 2021-01-28T13:30:11-08:00
|
||
|
weight: 10
|
||
|
---
|
||
|
|
||
|
Finally, we have everything we need to build the graphics pipeline. We just need to pass our various structures into a `GraphicsPipelineCreateInfo` object.
|
||
|
|
||
|
```cs
|
||
|
var myGraphicsPipelineCreateInfo = new GraphicsPipelineCreateInfo
|
||
|
{
|
||
|
ColorBlendState = myColorBlendState,
|
||
|
DepthStencilState = myDepthStencilState,
|
||
|
VertexShaderState = myVertexShaderState,
|
||
|
FragmentShaderState = myFragmentShaderState,
|
||
|
MultisampleState = myMultisampleState,
|
||
|
PipelineLayoutInfo = myPipelineLayoutInfo,
|
||
|
RasterizerState = myRasterizerState,
|
||
|
PrimitiveType = PrimitiveType.TriangleList,
|
||
|
VertexInputState = myVertexInputState,
|
||
|
ViewportState = myViewportState,
|
||
|
RenderPass = myRenderPass
|
||
|
};
|
||
|
|
||
|
var myGraphicsPipeline = new GraphicsPipeline(
|
||
|
GraphicsDevice,
|
||
|
myGraphicsPipelineCreateInfo
|
||
|
);
|
||
|
```
|
||
|
|
||
|
Finally! That's it! You might have noticed that a lot of this structure can be reused across pipelines. I strongly recommend creating individual container objects for the various states your renderer uses so you don't have to repeat yourself a whole bunch.
|