Files
Juliet/Romeo/docs/Juliet_include_Graphics_SkyboxRenderer.md

33 lines
2.1 KiB
Markdown

# 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<GraphicsDevice> device,
NonNullPtr<Window> window)`
- `JULIET_API void ShutdownSkyboxRenderer()`
- `JULIET_API void RenderSkybox(NonNullPtr<RenderPass> pass, NonNullPtr<CommandList> cmdList, const Matrix& viewProjection)`
- `#if ALLOW_SHADER_HOT_RELOAD
JULIET_API void ReloadSkyboxShaders()`