#include <renderservice.h>
Public Types | |
| enum | EPhysicalDeviceType : int { Discrete = 4, Integrated = 3, CPU = 2, Virtual = 1, Other = 0 } |
Public Member Functions | |
| RenderServiceConfiguration ()=default | |
| RenderServiceConfiguration (void *windowHandle) | |
| rtti::TypeInfo | getServiceType () const override |
Public Member Functions inherited from Object | |
| Object () | |
| virtual | ~Object () |
| virtual bool | init (utility::ErrorState &errorState) |
| virtual void | onDestroy () |
| Object (Object &)=delete | |
| Object & | operator= (const Object &)=delete |
| Object (Object &&)=delete | |
| Object & | operator= (Object &&)=delete |
Public Attributes | |
| bool | mHeadless = false |
| Property: 'Headless' Render without a window. Turning this on forbids the use of a nap::RenderWindow. More... | |
| EVideoDriver | mVideoDriver = EVideoDriver::Default |
| Property: 'VideoDriver' The video back-end to use, defaults to system preference. More... | |
| EPhysicalDeviceType | mPreferredGPU = EPhysicalDeviceType::Discrete |
| Property: 'PreferredGPU' The preferred type of GPU to use. When unavailable the fastest GPU option is selected. More... | |
| std::vector< std::string > | mLayers = { "VK_LAYER_KHRONOS_validation" } |
| Property: 'Layers' Vulkan layers the engine tries to load in Debug mode. Warning is issued if the layer can't be loaded. Layers are disabled in release mode. More... | |
| std::vector< std::string > | mAdditionalExtensions = { } |
| Property: 'Extensions' Additional required Vulkan device extensions. More... | |
| uint32 | mVulkanVersionMajor = 1 |
| Property: 'VulkanMajor The major required vulkan API instance version. More... | |
| uint32 | mVulkanVersionMinor = 2 |
| Property: 'VulkanMinor' The minor required vulkan API instance version. More... | |
| uint32 | mAnisotropicFilterSamples = 8 |
| Property: 'AnisotropicSamples' Default max number of anisotropic filter samples, can be overridden by a sampler if required. More... | |
| bool | mEnableCompute = true |
| Property: 'EnableCompute' Ensures the selected queue supports Vulkan Compute commands. Enable this if you wish to use Vulkan Compute functionality. More... | |
| bool | mEnableCaching = true |
| Property: 'Caching' Saves state between sessions, including window size & position, when turned on. More... | |
| bool | mEnableDebug = true |
| Property: 'EnableDebug' Loads debug extension for printing Vulkan debug messages. More... | |
| bool | mEnableRobustBufferAccess = false |
| Property: 'EnableRobustBufferAccess' Enables buffer bounds-checking on the GPU. Only enable this when absolutely necessary for debugging your application. More... | |
| bool | mPrintAvailableLayers = false |
| Property: 'ShowLayers' If all the available Vulkan layers are printed to console. More... | |
| bool | mPrintAvailableExtensions = false |
| Property: 'ShowExtensions' If all the available Vulkan extensions are printed to console. More... | |
Public Attributes inherited from Object | |
| std::string | mID |
| Property: 'mID' unique name of the object. Used as an identifier by the system. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from Object | |
| static bool | isIDProperty (rtti::Instance &object, const rtti::Property &property) |
Render engine configuration settings.
|
strong |
|
default |
| RenderServiceConfiguration | ( | void * | windowHandle | ) |
Initialize render service using external window handle. This is required when NAP is embedded in another process and doesn't create and manage it's own windows. Note that the handle must of type SDL_Surface* !
| windowHandle | window handle, must be of type SDL_Window* |
|
overridevirtual |
Implements ServiceConfiguration.
| std::vector<std::string> mAdditionalExtensions = { } |
Property: 'Extensions' Additional required Vulkan device extensions.
| uint32 mAnisotropicFilterSamples = 8 |
Property: 'AnisotropicSamples' Default max number of anisotropic filter samples, can be overridden by a sampler if required.
| bool mEnableCaching = true |
Property: 'Caching' Saves state between sessions, including window size & position, when turned on.
| bool mEnableCompute = true |
Property: 'EnableCompute' Ensures the selected queue supports Vulkan Compute commands. Enable this if you wish to use Vulkan Compute functionality.
| bool mEnableDebug = true |
Property: 'EnableDebug' Loads debug extension for printing Vulkan debug messages.
| bool mEnableRobustBufferAccess = false |
Property: 'EnableRobustBufferAccess' Enables buffer bounds-checking on the GPU. Only enable this when absolutely necessary for debugging your application.
| bool mHeadless = false |
Property: 'Headless' Render without a window. Turning this on forbids the use of a nap::RenderWindow.
| std::vector<std::string> mLayers = { "VK_LAYER_KHRONOS_validation" } |
Property: 'Layers' Vulkan layers the engine tries to load in Debug mode. Warning is issued if the layer can't be loaded. Layers are disabled in release mode.
| EPhysicalDeviceType mPreferredGPU = EPhysicalDeviceType::Discrete |
Property: 'PreferredGPU' The preferred type of GPU to use. When unavailable the fastest GPU option is selected.
| bool mPrintAvailableExtensions = false |
Property: 'ShowExtensions' If all the available Vulkan extensions are printed to console.
| bool mPrintAvailableLayers = false |
Property: 'ShowLayers' If all the available Vulkan layers are printed to console.
| EVideoDriver mVideoDriver = EVideoDriver::Default |
Property: 'VideoDriver' The video back-end to use, defaults to system preference.
| uint32 mVulkanVersionMajor = 1 |
Property: 'VulkanMajor The major required vulkan API instance version.
| uint32 mVulkanVersionMinor = 2 |
Property: 'VulkanMinor' The minor required vulkan API instance version.