78 default:
return "Unknown!";
136 virtual void SetLightVP(
const float* lightVP) { (void)lightVP; }
142 if (enabled ==
m_vsync)
return;
195 if (res < 256 || res > 8192)
return;
215 if (samples != 1 && samples != 2 && samples != 4 && samples != 8)
Abstract interface for high-level graphics command execution and resource management.
Abstract render backend: swapchain, frame lifecycle, and post-effect toggles.
virtual void ConfigureRenderMode()=0
Applies the current RenderMode (fill/wireframe/points) to backend state.
RendererType GetType() const
void SetShadowPassEnabled(bool enabled)
virtual size_t GetGPUMemoryBudget() const
const char * GetTypeStr() const
bool IsShadowPassEnabled() const
virtual bool Initialize()=0
Creates the device, swapchain, and backend resources.
static constexpr float MetricUpdateInterval
void SetSSAOEnabled(bool enabled)
void SetSSAOBias(float bias)
void SetImGUI(bool bEnable)
bool IsSSAOEnabled() const
void SetIBLEnabled(bool enabled)
bool bEnabledPerformanceCounter
virtual void ConfigureRenderFace()=0
Applies the current RenderFace (cull mode) to backend state.
void SetPCSSEnabled(bool enabled)
bool m_vsyncChangeRequested
void UpdateFrameMetrics()
Rolls up frame count into rate/time/triangle stats once per MetricUpdateInterval.
bool IsTAAEnabled() const
virtual void EndRender()=0
Submits recorded commands and presents the frame.
virtual void ApplyMSAAChange()
virtual size_t GetGPUMemoryUsed() const
uint32_t m_msaaSampleCount
uint32_t m_pendingMsaaSampleCount
virtual void ApplyShadowResolutionChange()
void SetTonemappingEnabled(bool enabled)
uint32_t GetMSAASampleCount() const
virtual void ApplyVSyncChange()
float GetSSAOBias() const
void SetSSREnabled(bool enabled)
void SetRenderDrawMode(RenderMode mode)
float GetRamUsage() const
uint32_t GetMaxMSAASampleCount() const
void SetTAAEnabled(bool enabled)
virtual void WaitIdle()
Blocks until the GPU has finished all outstanding work.
void SetPerformanceCounter(bool value)
void SetShadowMapResolution(uint32_t res)
Requests a new shadow map size, clamped to [256, 8192] and queued if resources already exist.
bool GetIsPerformanceCounter()
RenderMode GetRenderMode() const
bool m_shadowResChangeRequested
float GetFrameTime() const
virtual void SetLightVP(const float *lightVP)
virtual void BeginRender()=0
Acquires the next frame and prepares it for command recording.
virtual bool CreateImGUI()=0
Initializes ImGui integration for this backend.
void SetBloomEnabled(bool enabled)
virtual RenderContext * GetContext()=0
Returns the backend's command-recording interface.
float GetSSAOPower() const
bool m_msaaChangeRequested
void SetSSAORadius(float radius)
uint32_t m_maxMsaaSampleCount
uint32_t m_shadowMapResolution
bool IsTonemappingEnabled() const
float GetIBLIntensity() const
void SetExposure(float exposure)
virtual void SetVSync(bool enabled)
void SetIBLIntensity(float intensity)
virtual void FlushPendingTransfers()
Flushes any buffered upload/staging transfers still in flight.
bool IsPCSSEnabled() const
void SetRenderCullFace(RenderFace face)
bool IsIBLEnabled() const
float GetSSAORadius() const
bool GetDeferredEnabled() const
bool IsBloomEnabled() const
float GetExposure() const
float GetCPUUsage() const
virtual void SetMSAASampleCount(uint32_t samples)
Requests a new MSAA sample count; rejects invalid values and samples above 1 while deferred shading i...
void SetSSAOPower(float power)
void SetGamma(float gamma)
uint32_t GetShadowMapResolution() const
virtual void UpdateShadowLightUBO(const void *data, uint32_t size)
bool IsSSREnabled() const
bool m_shadowResourcesCreated
uint32_t m_pendingShadowMapResolution
void SetDeferredEnabled(bool enabled)
virtual void Resize(uint32_t width, uint32_t height)=0
Recreates swapchain-dependent resources for a new surface size.
virtual uint32_t GetFeatureCaps() const
Feature capability mask; backends override with the audited truth.
Backend-facing rendering layer shared by the four graphics backends.
RendererType
Selects which graphics API a Renderer instance targets.
RenderMode
Rasterizer fill style for a draw.
RenderFace
Which triangle winding gets culled.
GraphicsCaps
Per-backend feature capability bits, queried to gate optional pipeline stages.
Root namespace for everything the engine exposes.