# Juliet\include\Graphics\GraphicsPipeline

## Source Files
- Header: `Juliet\include\Graphics\GraphicsPipeline.h`

## AI Description
The `GraphicsPipeline` class in the provided C++ header file is designed to encapsulate the configuration and management of a graphics pipeline for rendering 3D scenes. It includes various components such as shaders, rasterizer state, vertex input state, depth stencil state, and multisample state to control how vertices are processed and rendered on the screen.

The class provides methods to create a new `GraphicsPipeline` instance using the provided configuration information, which includes pointers to vertex and fragment shaders, primitive type, target information, rasterizer state, multisample state, vertex input state, depth stencil state, and graphics pipeline create info. The class also manages the lifecycle of the pipeline, ensuring that resources are properly allocated and deallocated when necessary.

The `GraphicsPipeline` class is intended to be used by higher-level rendering systems or applications that need to configure and manage graphics pipelines for complex 3D scenes.

## Symbols

### Namespace `Juliet`

#### Classes, Structs & Unions
- `struct RasterizerState`
- `struct VertexBufferDescription`
- `struct VertexAttribute`
- `struct VertexInputState`
- `struct GraphicsPipelineTargetInfo`
- `struct StencilOperationState`
- `struct DepthStencilState`
- `struct MultisampleState`
- `struct GraphicsPipelineCreateInfo`

#### Enums
- `enum class FillMode`
- `enum class CullMode`
- `enum class FrontFace`
- `enum class PrimitiveType`
- `enum class VertexInputRate`
- `enum class VertexElementFormat`
- `enum class CompareOperation`
- `enum class StencilOperation`

