Helper class to create proper platform dependent renderer. The most universal usage as is to call Create() method without arguments.

You can find more information in comments below.

class CRenderer
    static IRenderer *Create(
        const RendererTechnology technology = RendererTechnology::OpenGL, // Technology to use'); ?> 
    #ifdef _WIN32
        const Version2 &max_version = Version2{ 4, 5 }, // Maximum native graphics version to use 
    #if defined(__linux__) && !defined(__ANDROID__)
        const Version2 &max_version = Version2{ 4, 5 }, // Maximum native graphics version to use 
    #ifdef __ANDROID__
        const Version2 &max_version = Version2{ 3, 2 }, // Maximum native graphics version to use 
        const bool double_buffered = false, // Use single or double buffering 
        const int multisample_factor = 0, // Antialiasing factor 
        IErrorListener *listener = nullptr, // Error listener 
        const bool debug_context = false); // Whether try to create debug native graphics context 

At the moment only RendererTechnology::OpenGL technology is supported.

To create debug renderer, listener should be specified. Native graphics debug context will be create only if listener is specified, debug_context is true and native graphics support it.

When multisample_factor is greater than zero, the best one with the closes value to specified one will be created. For example, if you specify multisample_factor as 16 but native graphics of the system where application runs support maximum 8, then renderer with factor 8 will be created.

Below you can find a list of supported and used by default version restrictions.

Platform Default maximum version Minimum supported version
Windows 4.5 OpenGL 3.1
Linux 4.5 OpenGL 3.1
Android 3.2 GLES 3.1
Namespace: nitisa
Include: Package/Core/Renderer.h