Click or drag to resize
Ab4d.SharpEngine logo

EngineCreateOptions Class

Options that are user to initialize Ab4d.SharpEngine.
Inheritance Hierarchy
SystemObject
  Ab4d.SharpEngine.CommonEngineCreateOptions

Namespace: Ab4d.SharpEngine.Common
Assembly: Ab4d.SharpEngine (in Ab4d.SharpEngine.dll) Version: 1.0.8740+deb2991acfe86a95cca780cd4f82bcae2805c1a5
Syntax
C#
public class EngineCreateOptions

The EngineCreateOptions type exposes the following members.

Constructors
 NameDescription
Public methodEngineCreateOptions Creates a new instance of EngineCreateOptions
Top
Properties
 NameDescription
Public propertyAdditionalValidationFeatures AdditionalValidationFeatures can be set to an array of ValidationFeatureEnableEXT enum values that specify additional validation features that will be enabled by the engine (if VK_EXT_validation_features instance extension is supported). The EnableStandardValidation must be true and supported for additional validation to work.
Public propertyApplicationName The name of the application that is using SharpEngine. If not manually set, then the name is set from the name of the entry assembly.
Public propertyApplicationVersion The version of the that is using SharpEngine. If not manually set, then the version is set from the version of the entry assembly.
Public propertyCreateDebugDirectXDevice Gets or sets a Boolean that specifies if the DirectX 11 device is created with enabled debug flag (only when DirectX is used for shared texture). Default value is false.
Public propertyCustomDeviceId When set to a non-zero value, then the PhysicalDevice with this DeviceId will be selected as the used device. If the device with this Id does not exist, then a default device will be used (a Warn log message will be written about that). When setting this value, the DeviceSelectionType is automatically set to CustomDeviceId.
Public propertyCustomDeviceSelectionFunc CustomDeviceSelectionFunc is a Func that takes list of all PhysicalDeviceDetails and SurfaceKHR and returns the selected PhysicalDevice.
Public propertyCustomVulkanLoaderLibrary CustomVulkanLoaderLibrary can specify a custom library name (can also include file path) that will be used as Vulkan Loader library.
Public propertyDesiredDeviceExtensionNames A list of Device extension names that will be enabled if the extensions are available when creating a device. Any of the specified extensions is not available, then no exception will be thrown (only a log message with warning level will be written).
Public propertyDesiredInstanceExtensionNames A list of Instance extension names that will be enabled if the extensions are available when creating an instance. Any of the specified extensions is not available, then no exception will be thrown (only a log message with warning level will be written).
Public propertyDeviceSelectionType DeviceSelectionType defines which device (graphics card) will be selected by the SharpEngine. Default value is DefaultDevice.
Public propertyEnableShaderDebugPrintf Gets or sets a Boolean that specifies if using debugPrintfEXT function in shader is enabled. Default value is false. Enabling this feature can slow down initialization and rendering.
Public propertyEnableStandardValidation Gets or sets a Boolean that specified is Vulkan standard validation is enabled. When enabled then a Vulkan validation layer checks and validates each vulkan call and writes detailed information about the problem. When disabled then this layer is skipped for better performance but in case of an error the application can crash without any additional problem information. It is recommended to enable standard validation during development and disable it in production to improve performance (in case of problems it is good to be still able to start the application with standard validation enabled). Default value is false.
Public propertyEnableSurfaceSupport EnableSurfaceSupport is by default set to true and indicates that a Vulkan surface can be used as the target for rendering (usually this is used when rendering to a window). When rendering only to a bitmap or when using shared texture, then this value can be set to false.
Public propertyEnableVulkanLineRasterization Gets or sets a Boolean that specifies if Vulkan's line rasterization should be enabled. When true (false by default) than LineRasterizationExtension will be enabled (when supported) and LineRasterizationMode can be set to a mode that uses V. This enables rendering thick lines with Vulkan's driver implementation. True by default.
Public propertyEnableVulkanStippleLineRasterization Gets or sets a Boolean that specifies if Vulkan's line rasterization with support for stippled lines (lines with pattern) should be enabled. When true (false by default) then this requires slightly more complex initialization.
Public propertyEnsureCameraOnInitialize When true (by default) and if there is no camera defined when rendering the first frame, then a new TargetPositionCamera is created with Heading and Attitude set to 0, TargetPosition set to the center of Scene's Bounding box and Distance set to double the distance of the bounding box diagonal. A warning log message is be written to log when a camera is created in this case. When false and if no camera is defined, then Identity matrix is used for ViewProjection matrix.
Public propertyPreferredSwapChainImagesCount PreferredSwapChainImagesCount can be used to set the preferred number of swap chain images. The actually used number may be different and is based on the surface min and max possible values. Default value is 2.
Public propertyRequiredDeviceExtensionNames A list of additional Device extension names that will be enabled when creating a device. Any of the specified extensions is not available, then an exception is thrown when creating the VulkanDevice.
Public propertyRequiredInstanceExtensionNames A list of Instance extension names that will be enabled when creating an instance. Any of the specified extensions is not available, then an exception is thrown when creating the Instance.
Public propertySemaphoresExportableType This property can be used to create exportable Vulkan Semaphores to synchronize rendering with external UI framework. Semaphores can be retrieved by GetImageAvailableSemaphore and GetRenderFinishedSemaphore methods. By default this property is set to None which does not allow exporting the semaphores.
Public propertyVulkanApiVersion When not null it defines the Vulkan API version that is used to create the Vulkan Instance. The version must be bigger or equal to MinRequiredVulkanApiVersion.
Top
Fields
 NameDescription
Public fieldSetupRequestedDeviceFeatures Gets or sets a Func that gets PhysicalDeviceDetails (provides information which features are supported by the device) and PhysicalDeviceFeatures (with features enabled by SharpEngine) and returns a PhysicalDeviceFeatures that will be passed to the creation of the device. Before enabling features users need to check if the feature is actually supported by the device (by checking the PhysicalDeviceDetails.Features).
Top
See Also