33 lines
2.1 KiB
Markdown
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()`
|
|
|