# Juliet\src\Graphics\D3D12\D3D12RenderPass

## Source Files
- Header: `Juliet\src\Graphics\D3D12\D3D12RenderPass.h`
- Source: `Juliet\src\Graphics\D3D12\D3D12RenderPass.cpp`

## AI Description
This C++ component is designed to manage the rendering process in a DirectX 12 graphics application. It provides functions to begin and end a render pass, bind a graphics pipeline, draw primitives, and resolve color textures if necessary. The class encapsulates the logic for setting up the render target, depth stencil, and primitive topology, as well as managing vertex and fragment shaders. The component also handles resource management and synchronization between different stages of the rendering pipeline.

## Symbols

### Namespace `Juliet::D3D12`

#### Functions & Methods
- `extern void BeginRenderPass(NonNullPtr<CommandList> commandList, NonNullPtr<const ColorTargetInfo> colorTargetInfos,
                                uint32 colorTargetInfoCount, const DepthStencilTargetInfo* depthStencilTargetInfo)`
- `extern void EndRenderPass(NonNullPtr<CommandList> commandList)`
- `extern void BindGraphicsPipeline(NonNullPtr<CommandList> commandList, NonNullPtr<GraphicsPipeline> graphicsPipeline)`
- `extern void DrawPrimitives(NonNullPtr<CommandList> commandList, uint32 numVertices, uint32 numInstances,
                               uint32 firstVertex, uint32 firstInstance)`
- `void DrawIndexedPrimitives(NonNullPtr<CommandList> commandList, uint32 numIndices, uint32 numInstances,
                                      uint32 firstIndex, uint32 vertexOffset, uint32 firstInstance)`

