NAP
Public Types | Public Member Functions | Public Attributes | List of all members
RenderServiceConfiguration Class Reference

#include <renderservice.h>

Public Types

enum  EPhysicalDeviceType : int {
  Discrete = 4, Integrated = 3, CPU = 2, Virtual = 1,
  Other = 0
}
 

Public Member Functions

virtual 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
 
Objectoperator= (const Object &)=delete
 
 Object (Object &&)=delete
 
Objectoperator= (Object &&)=delete
 

Public Attributes

bool mHeadless = false
 Property: 'Headless' Render without a window. Turning this on forbids the use of a nap::RenderWindow. 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 = 0
 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 mEnableHighDPIMode = true
 Property: 'EnableHighDPI' If high DPI render mode is enabled, on by default. 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)
 

Description

Render engine configuration settings.

Inheritance diagram for RenderServiceConfiguration:
[legend]
Collaboration diagram for RenderServiceConfiguration:
[legend]

Member Enumeration Documentation

◆ EPhysicalDeviceType

enum EPhysicalDeviceType : int
strong

Supported Vulkan device types in order of preference

Enumerator
Discrete 

Discrete (dedicated) graphics card.

Integrated 

Integrated graphics card.

CPU 

CPU as graphics card.

Virtual 

Virtual graphics card.

Other 

Unknown type graphics card.

Member Function Documentation

◆ getServiceType()

virtual rtti::TypeInfo getServiceType ( ) const
overridevirtual
Returns
The Service type associated with this configuration.

Implements ServiceConfiguration.

Member Data Documentation

◆ mAdditionalExtensions

std::vector<std::string> mAdditionalExtensions = { }

Property: 'Extensions' Additional required Vulkan device extensions.

◆ mAnisotropicFilterSamples

uint32 mAnisotropicFilterSamples = 8

Property: 'AnisotropicSamples' Default max number of anisotropic filter samples, can be overridden by a sampler if required.

◆ mEnableCaching

bool mEnableCaching = true

Property: 'Caching' Saves state between sessions, including window size & position, when turned on.

◆ mEnableCompute

bool mEnableCompute = true

Property: 'EnableCompute' Ensures the selected queue supports Vulkan Compute commands. Enable this if you wish to use Vulkan Compute functionality.

◆ mEnableDebug

bool mEnableDebug = true

Property: 'EnableDebug' Loads debug extension for printing Vulkan debug messages.

◆ mEnableHighDPIMode

bool mEnableHighDPIMode = true

Property: 'EnableHighDPI' If high DPI render mode is enabled, on by default.

◆ mEnableRobustBufferAccess

bool mEnableRobustBufferAccess = false

Property: 'EnableRobustBufferAccess' Enables buffer bounds-checking on the GPU. Only enable this when absolutely necessary for debugging your application.

◆ mHeadless

bool mHeadless = false

Property: 'Headless' Render without a window. Turning this on forbids the use of a nap::RenderWindow.

◆ mLayers

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.

◆ mPreferredGPU

Property: 'PreferredGPU' The preferred type of GPU to use. When unavailable the fastest GPU option is selected.

◆ mPrintAvailableExtensions

bool mPrintAvailableExtensions = false

Property: 'ShowExtensions' If all the available Vulkan extensions are printed to console.

◆ mPrintAvailableLayers

bool mPrintAvailableLayers = false

Property: 'ShowLayers' If all the available Vulkan layers are printed to console.

◆ mVulkanVersionMajor

uint32 mVulkanVersionMajor = 1

Property: 'VulkanMajor The major required vulkan API instance version.

◆ mVulkanVersionMinor

uint32 mVulkanVersionMinor = 0

Property: 'VulkanMinor' The minor required vulkan API instance version.