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

#include <renderservice.h>

Public Types

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

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 first GPU in the list 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 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.

Enumerator
Integrated 

Integrated graphics card.

Discrete 

Discrete (dedicated) graphics card.

Virtual 

Virtual graphics card.

CPU 

CPU as 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.

◆ 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 first GPU in the list 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.