Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Divide::Config Namespace Reference

Namespaces

namespace  Assert
 
namespace  Build
 
namespace  Lighting
 
namespace  Networking
 
namespace  Profile
 

Variables

constexpr float ALPHA_DISCARD_THRESHOLD = 1.f - 0.05f
 
constexpr unsigned char MINIMUM_VULKAN_MINOR_VERSION = 3u
 
constexpr unsigned char DESIRED_VULKAN_MINOR_VERSION = 3u
 
constexpr U16 TARGET_FRAME_RATE = 60
 Application desired framerate for physics and input simulations.
 
constexpr U8 MAX_FRAMES_IN_FLIGHT = 3u
 Maximum number of active frames until we start waiting on a fence/sync.
 
constexpr U8 TICK_DIVISOR = 2u
 
constexpr U16 MIN_SLEEP_THRESHOLD_MS = 5u
 The minimum threshold needed for a threaded loop to use sleep. Update intervals bellow this threshold will not use sleep!
 
constexpr size_t REQUIRED_RAM_SIZE_IN_BYTES = 2u * (1024u * 1024 * 1024)
 
constexpr U32 MAX_POOLED_TASKS = 1 << 16
 How many tasks should we keep in a per-thread pool to avoid using new/delete (must be power of two)
 
constexpr U16 MAX_BONE_COUNT_PER_NODE = 1 << 7
 Maximum number of bones available per node.
 
constexpr U16 MAX_VISIBLE_NODES = 1 << 13
 Estimated maximum number of visible objects per render pass (this includes debug primitives)
 
constexpr U16 MAX_CONCURRENT_MATERIALS = 1 << 14
 Estimated maximum number of materials used in a single frame by all passes combined.
 
constexpr U8 MAX_CLIP_DISTANCES = 3u
 
constexpr U8 MAX_CULL_DISTANCES = 1u
 
constexpr U8 MAX_REFLECTIVE_NODES_IN_VIEW = Build::IS_DEBUG_BUILD ? 3u : 5u
 
constexpr U8 MAX_REFRACTIVE_NODES_IN_VIEW = Build::IS_DEBUG_BUILD ? 2u : 4u
 Similar to MAX_REFLECTIVE_NODES_IN_VIEW but for custom refraction passes (e.g. Water, special glass, etc). Also a candidate for removal.
 
constexpr U8 MAX_REFLECTIVE_PROBES_PER_PASS = 6u
 Maximum number of environment probes we are allowed to update per frame.
 
constexpr U8 MAX_LOCAL_PLAYER_COUNT = 4u
 Maximum number of players we support locally. We store per-player data such as key-bindings, camera positions, etc.
 
constexpr U8 MAX_DEBUG_SCOPE_DEPTH = 32u
 Maximum number of nested debug scopes we support in the renderer.
 
constexpr bool ENABLE_GPU_VALIDATION = !Build::IS_SHIPPING_BUILD
 Error callbacks, validations, buffer checks, etc. are controlled by this flag. Heavy performance impact!
 
constexpr bool ENABLE_LOCALE_FILE_WATCHER = !Build::IS_SHIPPING_BUILD && Build::ENABLE_EDITOR
 Scan changes to shader source files, script files, etc to hot-reload assets. Isn't needed in shipping builds or without the editor enabled.
 
constexpr char DEFAULT_PROJECT_NAME [] = "Default"
 
constexpr char DEFAULT_SCENE_NAME [] = "Default"
 
constexpr char DELETED_FOLDER_NAME [] = "Deleted"
 
constexpr char ENGINE_NAME [] = "Divide Framework"
 
constexpr auto ENGINE_VERSION_MAJOR = 0u
 
constexpr auto ENGINE_VERSION_MINOR = 1u
 
constexpr auto ENGINE_VERSION_PATCH = 0u
 

Variable Documentation

◆ ALPHA_DISCARD_THRESHOLD

constexpr float Divide::Config::ALPHA_DISCARD_THRESHOLD = 1.f - 0.05f
constexpr

Definition at line 91 of file config.h.

◆ DEFAULT_PROJECT_NAME

constexpr char Divide::Config::DEFAULT_PROJECT_NAME[] = "Default"
constexpr

Definition at line 197 of file config.h.

◆ DEFAULT_SCENE_NAME

constexpr char Divide::Config::DEFAULT_SCENE_NAME[] = "Default"
constexpr

Definition at line 198 of file config.h.

◆ DELETED_FOLDER_NAME

constexpr char Divide::Config::DELETED_FOLDER_NAME[] = "Deleted"
constexpr

Definition at line 199 of file config.h.

◆ DESIRED_VULKAN_MINOR_VERSION

constexpr unsigned char Divide::Config::DESIRED_VULKAN_MINOR_VERSION = 3u
constexpr

Definition at line 94 of file config.h.

◆ ENABLE_GPU_VALIDATION

constexpr bool Divide::Config::ENABLE_GPU_VALIDATION = !Build::IS_SHIPPING_BUILD
constexpr

Error callbacks, validations, buffer checks, etc. are controlled by this flag. Heavy performance impact!

Definition at line 192 of file config.h.

◆ ENABLE_LOCALE_FILE_WATCHER

constexpr bool Divide::Config::ENABLE_LOCALE_FILE_WATCHER = !Build::IS_SHIPPING_BUILD && Build::ENABLE_EDITOR
constexpr

Scan changes to shader source files, script files, etc to hot-reload assets. Isn't needed in shipping builds or without the editor enabled.

Definition at line 195 of file config.h.

◆ ENGINE_NAME

constexpr char Divide::Config::ENGINE_NAME[] = "Divide Framework"
constexpr

Definition at line 200 of file config.h.

◆ ENGINE_VERSION_MAJOR

constexpr auto Divide::Config::ENGINE_VERSION_MAJOR = 0u
constexpr

Definition at line 201 of file config.h.

◆ ENGINE_VERSION_MINOR

constexpr auto Divide::Config::ENGINE_VERSION_MINOR = 1u
constexpr

Definition at line 202 of file config.h.

◆ ENGINE_VERSION_PATCH

constexpr auto Divide::Config::ENGINE_VERSION_PATCH = 0u
constexpr

Definition at line 203 of file config.h.

◆ MAX_BONE_COUNT_PER_NODE

constexpr U16 Divide::Config::MAX_BONE_COUNT_PER_NODE = 1 << 7
constexpr

Maximum number of bones available per node.

Definition at line 117 of file config.h.

◆ MAX_CLIP_DISTANCES

constexpr U8 Divide::Config::MAX_CLIP_DISTANCES = 3u
constexpr

Maximum number of concurrent clipping planes active at any time (can be changed per-call) High numbers for CLIP/CULL negatively impact number of threads run on the GPU. Max of 6 for each (ref: nvidia's "GPU-DRIVEN RENDERING" 2016)

Definition at line 127 of file config.h.

◆ MAX_CONCURRENT_MATERIALS

constexpr U16 Divide::Config::MAX_CONCURRENT_MATERIALS = 1 << 14
constexpr

Estimated maximum number of materials used in a single frame by all passes combined.

Definition at line 123 of file config.h.

◆ MAX_CULL_DISTANCES

constexpr U8 Divide::Config::MAX_CULL_DISTANCES = 1u
constexpr

Same as MAX_CLIP_DISTANCES, but for culling instead. This number counts towards the maximum combined clip&cull distances the GPU supports Value is capped between [0, GPU_MAX_DISTANCES - MAX_CLIP_DISTANCES)

Definition at line 131 of file config.h.

◆ MAX_DEBUG_SCOPE_DEPTH

constexpr U8 Divide::Config::MAX_DEBUG_SCOPE_DEPTH = 32u
constexpr

Maximum number of nested debug scopes we support in the renderer.

Definition at line 147 of file config.h.

◆ MAX_FRAMES_IN_FLIGHT

constexpr U8 Divide::Config::MAX_FRAMES_IN_FLIGHT = 3u
constexpr

Maximum number of active frames until we start waiting on a fence/sync.

Definition at line 100 of file config.h.

◆ MAX_LOCAL_PLAYER_COUNT

constexpr U8 Divide::Config::MAX_LOCAL_PLAYER_COUNT = 4u
constexpr

Maximum number of players we support locally. We store per-player data such as key-bindings, camera positions, etc.

Definition at line 144 of file config.h.

◆ MAX_POOLED_TASKS

constexpr U32 Divide::Config::MAX_POOLED_TASKS = 1 << 16
constexpr

How many tasks should we keep in a per-thread pool to avoid using new/delete (must be power of two)

Definition at line 114 of file config.h.

◆ MAX_REFLECTIVE_NODES_IN_VIEW

constexpr U8 Divide::Config::MAX_REFLECTIVE_NODES_IN_VIEW = Build::IS_DEBUG_BUILD ? 3u : 5u
constexpr

How many reflective objects with custom draw pass are we allowed to display on screen at the same time (e.g. Water, mirrors, etc) SSR and Environment mapping do not count towards this limit. Should probably be removed in the future.

Definition at line 135 of file config.h.

◆ MAX_REFLECTIVE_PROBES_PER_PASS

constexpr U8 Divide::Config::MAX_REFLECTIVE_PROBES_PER_PASS = 6u
constexpr

Maximum number of environment probes we are allowed to update per frame.

Definition at line 141 of file config.h.

◆ MAX_REFRACTIVE_NODES_IN_VIEW

constexpr U8 Divide::Config::MAX_REFRACTIVE_NODES_IN_VIEW = Build::IS_DEBUG_BUILD ? 2u : 4u
constexpr

Similar to MAX_REFLECTIVE_NODES_IN_VIEW but for custom refraction passes (e.g. Water, special glass, etc). Also a candidate for removal.

Definition at line 138 of file config.h.

◆ MAX_VISIBLE_NODES

constexpr U16 Divide::Config::MAX_VISIBLE_NODES = 1 << 13
constexpr

Estimated maximum number of visible objects per render pass (this includes debug primitives)

Definition at line 120 of file config.h.

◆ MIN_SLEEP_THRESHOLD_MS

constexpr U16 Divide::Config::MIN_SLEEP_THRESHOLD_MS = 5u
constexpr

The minimum threshold needed for a threaded loop to use sleep. Update intervals bellow this threshold will not use sleep!

Definition at line 107 of file config.h.

◆ MINIMUM_VULKAN_MINOR_VERSION

constexpr unsigned char Divide::Config::MINIMUM_VULKAN_MINOR_VERSION = 3u
constexpr

Definition at line 93 of file config.h.

◆ REQUIRED_RAM_SIZE_IN_BYTES

constexpr size_t Divide::Config::REQUIRED_RAM_SIZE_IN_BYTES = 2u * (1024u * 1024 * 1024)
constexpr

Minimum required RAM size (in bytes) for the current build. We will probably fail to initialise if this is too low. Per frame memory arena and GPU object arena both depend on this value for up-front allocations

Definition at line 111 of file config.h.

◆ TARGET_FRAME_RATE

constexpr U16 Divide::Config::TARGET_FRAME_RATE = 60
constexpr

Application desired framerate for physics and input simulations.

Definition at line 97 of file config.h.

◆ TICK_DIVISOR

constexpr U8 Divide::Config::TICK_DIVISOR = 2u
constexpr

Application update rate divisor (how many many times should we update our state per second) e.g. For TARGET_FRAME_RATE = 60, TICK_DIVISOR = 2 => update at 30Hz, render at 60Hz.

Definition at line 104 of file config.h.