The Renderer interface looks like this:

class Renderer
{
        static RendererData& data() noexcept;
        static void saveSettings() noexcept;

        static const FString& getVendorString() noexcept;
        static const FString& getAPIVersion() noexcept;
        static const FString& getGPUName() noexcept;
        static const FString& getDriverVersion() noexcept;
};

The first function returns a reference to the RendererData struct that looks like this:

struct RendererData
{
    bool bVulkan = false;               // Enables the vulkan submodule
    bool bUsingVSync = true;            // Enables V-Sync, defaults to true
    uint32_t msaaSamples = 8;           // The number of samples for MSAA, supersampling
    bool bSampleRateShading = false;    // A boolean that if set to true enables sample rate shading, simply MSAA on shaders
    float sampleRateShadingMult = 0.0f; // Multiplier for sample rate shading, the higher = less performance but more quality
};

You can see descriptions in the code comments above.

The saveSettings function saves the settings in this struct to the Renderer config file under Config/Core/Renderer.yaml.

All functions after that, return information fetched from the Graphics API about your GPU, like the driver version or API version.

Settings

The settings for the renderer are stored at Config/Core/Renderer.yaml, which looks like this:

vulkan: false                
v-sync: false                
msaa-samples: 8              
sample-rate-shading: false   
sample-rate-shading-mult: 0.1

And corresponds directly to the RendererData struct documented above.

Event safety

The following members of the Renderer interface are marked as Any time:

  1. data()
  2. saveSettings()

The rest are marked as Begin.