|
SleakEngine 1.0.0
C++23 multi-backend game engine
|
Abstract render backend: swapchain, frame lifecycle, and post-effect toggles. More...
#include <Renderer.hpp>
Public Member Functions | |
| virtual | ~Renderer ()=0 |
| virtual void | ApplyMSAAChange () |
| virtual void | ApplyShadowResolutionChange () |
| virtual void | ApplyVSyncChange () |
| virtual void | BeginRender ()=0 |
| Acquires the next frame and prepares it for command recording. | |
| virtual void | Cleanup ()=0 |
| virtual bool | CreateImGUI ()=0 |
| Initializes ImGui integration for this backend. | |
| virtual void | EndRender ()=0 |
| Submits recorded commands and presents the frame. | |
| virtual void | FlushPendingTransfers () |
| Flushes any buffered upload/staging transfers still in flight. | |
| virtual RenderContext * | GetContext ()=0 |
| Returns the backend's command-recording interface. | |
| float | GetCPUUsage () const |
| bool | GetDeferredEnabled () const |
| float | GetExposure () const |
| virtual uint32_t | GetFeatureCaps () const |
| Feature capability mask; backends override with the audited truth. | |
| int | GetFrameRate () const |
| float | GetFrameTime () const |
| float | GetGamma () const |
| virtual size_t | GetGPUMemoryBudget () const |
| virtual size_t | GetGPUMemoryUsed () const |
| float | GetIBLIntensity () const |
| bool | GetImGUIEnabled () |
| bool | GetIsPerformanceCounter () |
| uint32_t | GetMaxMSAASampleCount () const |
| uint32_t | GetMSAASampleCount () const |
| float | GetRamUsage () const |
| RenderMode | GetRenderMode () const |
| uint32_t | GetShadowMapResolution () const |
| float | GetSSAOBias () const |
| float | GetSSAOPower () const |
| float | GetSSAORadius () const |
| int | GetTriangles () const |
| RendererType | GetType () const |
| const char * | GetTypeStr () const |
| int | GetVertices () const |
| bool | GetVSync () const |
| virtual bool | Initialize ()=0 |
| Creates the device, swapchain, and backend resources. | |
| bool | IsBloomEnabled () const |
| bool | IsIBLEnabled () const |
| bool | IsPCSSEnabled () const |
| bool | IsShadowPassEnabled () const |
| bool | IsSSAOEnabled () const |
| bool | IsSSREnabled () const |
| bool | IsTAAEnabled () const |
| bool | IsTonemappingEnabled () const |
| virtual void | Resize (uint32_t width, uint32_t height)=0 |
| Recreates swapchain-dependent resources for a new surface size. | |
| void | SetBloomEnabled (bool enabled) |
| void | SetDeferredEnabled (bool enabled) |
| void | SetExposure (float exposure) |
| void | SetGamma (float gamma) |
| void | SetIBLEnabled (bool enabled) |
| void | SetIBLIntensity (float intensity) |
| void | SetImGUI (bool bEnable) |
| virtual void | SetLightVP (const float *lightVP) |
| virtual void | SetMSAASampleCount (uint32_t samples) |
| Requests a new MSAA sample count; rejects invalid values and samples above 1 while deferred shading is on. | |
| void | SetPCSSEnabled (bool enabled) |
| void | SetPerformanceCounter (bool value) |
| void | SetRenderCullFace (RenderFace face) |
| void | SetRenderDrawMode (RenderMode mode) |
| void | SetShadowMapResolution (uint32_t res) |
| Requests a new shadow map size, clamped to [256, 8192] and queued if resources already exist. | |
| void | SetShadowPassEnabled (bool enabled) |
| void | SetSSAOBias (float bias) |
| void | SetSSAOEnabled (bool enabled) |
| void | SetSSAOPower (float power) |
| void | SetSSAORadius (float radius) |
| void | SetSSREnabled (bool enabled) |
| void | SetTAAEnabled (bool enabled) |
| void | SetTonemappingEnabled (bool enabled) |
| virtual void | SetVSync (bool enabled) |
| virtual void | UpdateShadowLightUBO (const void *data, uint32_t size) |
| virtual void | WaitIdle () |
| Blocks until the GPU has finished all outstanding work. | |
Protected Member Functions | |
| virtual void | ConfigureRenderFace ()=0 |
| Applies the current RenderFace (cull mode) to backend state. | |
| virtual void | ConfigureRenderMode ()=0 |
| Applies the current RenderMode (fill/wireframe/points) to backend state. | |
| void | UpdateFrameMetrics () |
| Rolls up frame count into rate/time/triangle stats once per MetricUpdateInterval. | |
Static Protected Attributes | |
| static constexpr float | MetricUpdateInterval = 0.5f |
Abstract render backend: swapchain, frame lifecycle, and post-effect toggles.
Definition at line 37 of file Renderer.hpp.
|
inlinepure virtual |
Definition at line 332 of file Renderer.hpp.
|
inlinevirtual |
Reimplemented in Sleak::RenderEngine::OpenGLRenderer, and Sleak::RenderEngine::VulkanRenderer.
Definition at line 232 of file Renderer.hpp.
|
inlinevirtual |
Reimplemented in Sleak::RenderEngine::VulkanRenderer.
Definition at line 205 of file Renderer.hpp.
|
inlinevirtual |
Reimplemented in Sleak::RenderEngine::OpenGLRenderer, and Sleak::RenderEngine::VulkanRenderer.
Definition at line 147 of file Renderer.hpp.
|
pure virtual |
Acquires the next frame and prepares it for command recording.
Implemented in Sleak::RenderEngine::OpenGLRenderer, and Sleak::RenderEngine::VulkanRenderer.
|
pure virtual |
Implemented in Sleak::RenderEngine::OpenGLRenderer, and Sleak::RenderEngine::VulkanRenderer.
|
protectedpure virtual |
Applies the current RenderFace (cull mode) to backend state.
|
protectedpure virtual |
Applies the current RenderMode (fill/wireframe/points) to backend state.
|
pure virtual |
Initializes ImGui integration for this backend.
Implemented in Sleak::RenderEngine::OpenGLRenderer, and Sleak::RenderEngine::VulkanRenderer.
|
pure virtual |
Submits recorded commands and presents the frame.
Implemented in Sleak::RenderEngine::OpenGLRenderer, and Sleak::RenderEngine::VulkanRenderer.
|
inlinevirtual |
Flushes any buffered upload/staging transfers still in flight.
Reimplemented in Sleak::RenderEngine::VulkanRenderer.
Definition at line 51 of file Renderer.hpp.
|
pure virtual |
Returns the backend's command-recording interface.
Implemented in Sleak::RenderEngine::OpenGLRenderer, and Sleak::RenderEngine::VulkanRenderer.
|
inline |
Definition at line 111 of file Renderer.hpp.
|
inline |
Definition at line 209 of file Renderer.hpp.
|
inline |
Definition at line 153 of file Renderer.hpp.
|
inlinevirtual |
Feature capability mask; backends override with the audited truth.
Reimplemented in Sleak::RenderEngine::OpenGLRenderer, and Sleak::RenderEngine::VulkanRenderer.
Definition at line 83 of file Renderer.hpp.
|
inline |
Definition at line 99 of file Renderer.hpp.
|
inline |
Definition at line 103 of file Renderer.hpp.
|
inline |
Definition at line 155 of file Renderer.hpp.
|
inlinevirtual |
Reimplemented in Sleak::RenderEngine::VulkanRenderer.
Definition at line 55 of file Renderer.hpp.
|
inlinevirtual |
Reimplemented in Sleak::RenderEngine::VulkanRenderer.
Definition at line 54 of file Renderer.hpp.
|
inline |
Definition at line 171 of file Renderer.hpp.
|
inline |
Definition at line 132 of file Renderer.hpp.
|
inline |
Definition at line 123 of file Renderer.hpp.
|
inline |
Definition at line 231 of file Renderer.hpp.
|
inline |
Definition at line 230 of file Renderer.hpp.
|
inline |
Definition at line 107 of file Renderer.hpp.
|
inline |
Definition at line 85 of file Renderer.hpp.
|
inline |
Definition at line 204 of file Renderer.hpp.
|
inline |
Definition at line 163 of file Renderer.hpp.
|
inline |
Definition at line 165 of file Renderer.hpp.
|
inline |
Definition at line 161 of file Renderer.hpp.
|
inline |
Definition at line 119 of file Renderer.hpp.
|
inline |
Definition at line 66 of file Renderer.hpp.
|
inline |
Definition at line 71 of file Renderer.hpp.
|
inline |
Definition at line 115 of file Renderer.hpp.
|
inline |
Definition at line 146 of file Renderer.hpp.
|
pure virtual |
Creates the device, swapchain, and backend resources.
Implemented in Sleak::RenderEngine::OpenGLRenderer, and Sleak::RenderEngine::VulkanRenderer.
|
inline |
Definition at line 183 of file Renderer.hpp.
|
inline |
Definition at line 169 of file Renderer.hpp.
|
inline |
Definition at line 187 of file Renderer.hpp.
|
inline |
Definition at line 138 of file Renderer.hpp.
|
inline |
Definition at line 159 of file Renderer.hpp.
|
inline |
Definition at line 175 of file Renderer.hpp.
|
inline |
Definition at line 179 of file Renderer.hpp.
|
inline |
Definition at line 151 of file Renderer.hpp.
|
pure virtual |
Recreates swapchain-dependent resources for a new surface size.
Implemented in Sleak::RenderEngine::OpenGLRenderer, and Sleak::RenderEngine::VulkanRenderer.
|
inline |
Definition at line 182 of file Renderer.hpp.
|
inline |
Definition at line 208 of file Renderer.hpp.
|
inline |
Definition at line 152 of file Renderer.hpp.
|
inline |
Definition at line 154 of file Renderer.hpp.
|
inline |
Definition at line 168 of file Renderer.hpp.
|
inline |
Definition at line 170 of file Renderer.hpp.
|
inline |
Definition at line 131 of file Renderer.hpp.
|
inlinevirtual |
Reimplemented in Sleak::RenderEngine::VulkanRenderer.
Definition at line 136 of file Renderer.hpp.
|
inlinevirtual |
Requests a new MSAA sample count; rejects invalid values and samples above 1 while deferred shading is on.
Definition at line 213 of file Renderer.hpp.
|
inline |
Definition at line 186 of file Renderer.hpp.
|
inline |
Definition at line 127 of file Renderer.hpp.
|
inline |
Definition at line 94 of file Renderer.hpp.
|
inline |
Definition at line 89 of file Renderer.hpp.
|
inline |
Requests a new shadow map size, clamped to [256, 8192] and queued if resources already exist.
Definition at line 194 of file Renderer.hpp.
|
inline |
Definition at line 137 of file Renderer.hpp.
|
inline |
Definition at line 162 of file Renderer.hpp.
|
inline |
Definition at line 158 of file Renderer.hpp.
|
inline |
Definition at line 164 of file Renderer.hpp.
|
inline |
Definition at line 160 of file Renderer.hpp.
|
inline |
Definition at line 174 of file Renderer.hpp.
|
inline |
Definition at line 178 of file Renderer.hpp.
|
inline |
Definition at line 150 of file Renderer.hpp.
|
inlinevirtual |
Definition at line 141 of file Renderer.hpp.
|
inlineprotected |
Rolls up frame count into rate/time/triangle stats once per MetricUpdateInterval.
Definition at line 241 of file Renderer.hpp.
|
inlinevirtual |
Reimplemented in Sleak::RenderEngine::VulkanRenderer.
Definition at line 135 of file Renderer.hpp.
|
inlinevirtual |
Blocks until the GPU has finished all outstanding work.
Reimplemented in Sleak::RenderEngine::VulkanRenderer.
Definition at line 49 of file Renderer.hpp.
|
protected |
Definition at line 258 of file Renderer.hpp.
|
protected |
Definition at line 272 of file Renderer.hpp.
|
protected |
Definition at line 271 of file Renderer.hpp.
|
protected |
Definition at line 266 of file Renderer.hpp.
|
protected |
Definition at line 265 of file Renderer.hpp.
|
protected |
Definition at line 264 of file Renderer.hpp.
|
protected |
Definition at line 263 of file Renderer.hpp.
|
protected |
Definition at line 277 of file Renderer.hpp.
|
protected |
Definition at line 259 of file Renderer.hpp.
|
protected |
Definition at line 260 of file Renderer.hpp.
|
protected |
Definition at line 305 of file Renderer.hpp.
|
protected |
Definition at line 317 of file Renderer.hpp.
|
protected |
Definition at line 286 of file Renderer.hpp.
|
protected |
Definition at line 268 of file Renderer.hpp.
|
protected |
Definition at line 267 of file Renderer.hpp.
|
protected |
Definition at line 287 of file Renderer.hpp.
|
protected |
Definition at line 296 of file Renderer.hpp.
|
protected |
Definition at line 300 of file Renderer.hpp.
|
protected |
Definition at line 325 of file Renderer.hpp.
|
protected |
Definition at line 326 of file Renderer.hpp.
|
protected |
Definition at line 324 of file Renderer.hpp.
|
protected |
Definition at line 308 of file Renderer.hpp.
|
protected |
Definition at line 327 of file Renderer.hpp.
|
protected |
Definition at line 312 of file Renderer.hpp.
|
protected |
Definition at line 311 of file Renderer.hpp.
|
protected |
Definition at line 280 of file Renderer.hpp.
|
protected |
Definition at line 314 of file Renderer.hpp.
|
protected |
Definition at line 313 of file Renderer.hpp.
|
protected |
Definition at line 292 of file Renderer.hpp.
|
protected |
Definition at line 290 of file Renderer.hpp.
|
protected |
Definition at line 293 of file Renderer.hpp.
|
protected |
Definition at line 291 of file Renderer.hpp.
|
protected |
Definition at line 303 of file Renderer.hpp.
|
protected |
Definition at line 304 of file Renderer.hpp.
|
protected |
Definition at line 285 of file Renderer.hpp.
|
protected |
Definition at line 320 of file Renderer.hpp.
|
protected |
Definition at line 321 of file Renderer.hpp.
|
staticconstexprprotected |
Definition at line 329 of file Renderer.hpp.
|
protected |
Definition at line 276 of file Renderer.hpp.
|
protected |
Definition at line 275 of file Renderer.hpp.
|
protected |
Definition at line 262 of file Renderer.hpp.
|
protected |
Definition at line 261 of file Renderer.hpp.