# Juliet\include\Graphics\SkyboxRenderer ## Source Files - Header: `Juliet\include\Graphics\SkyboxRenderer.h` - Source: `Juliet\src\Graphics\SkyboxRenderer.cpp` ## AI Description The `SkyboxRenderer` class in the given C++ code is designed to manage the rendering of a skybox using DirectX 12. It encapsulates the necessary components such as the graphics device, pipeline, and shader resources. The main purpose of this component is to initialize, shutdown, and render a skybox in a game or application. The class provides methods for initializing the renderer with a graphics device and window, shutting it down, and rendering the skybox using a specified render pass and command list. It also includes functionality to reload shaders if needed, although this feature is commented out in the source file. The `InitializeSkyboxRenderer` method sets up the pipeline by creating vertex and fragment shaders from DXIL files, configuring the graphics pipeline with the appropriate settings, and binding it to the render pass. The `ShutdownSkyboxRenderer` method cleans up the resources associated with the renderer, including destroying the graphics pipeline and resetting the state. The `RenderSkybox` method sets up push constants for the shader and uses them to draw a triangle list representing the skybox. It binds the graphics pipeline and executes the draw call using the provided render pass and command list. This class is part of a larger system that handles rendering in a game or application, providing a reusable component for managing the skybox rendering process. ## Symbols ### Namespace `Juliet` #### Classes, Structs & Unions - `struct SkyboxRenderer` #### Functions & Methods - `[[nodiscard]] JULIET_API bool InitializeSkyboxRenderer(NonNullPtr device, NonNullPtr window)` - `JULIET_API void ShutdownSkyboxRenderer()` - `JULIET_API void RenderSkybox(NonNullPtr pass, NonNullPtr cmdList, const Matrix& viewProjection)` - `#if ALLOW_SHADER_HOT_RELOAD JULIET_API void ReloadSkyboxShaders()`