Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Namespaces | Classes | Typedefs | Enumerations | Functions
foray::util Namespace Reference

Namespaces

namespace  impl
 

Classes

struct  BufferSection
 
class  ComponentTraits
 Describes the traits of a component type. More...
 
class  DualBuffer
 Helper class for organizing CPU -> GPU data synchronisation. In flight data is stored on host side, and copied to GPU right before being used. More...
 
class  EnvironmentMap
 Experimental type loading an environment map in spherical representation, also generates mip maps. More...
 
class  ExternalSemaphore
 Timeline Semaphore exposing handles for synchronization with other Apis (e.g. Cuda for OptiX denoising) More...
 
class  HistoryImage
 Helper object managing a copy of an existing image for use as history information (reprojection etc.) More...
 
class  ImageFormatTraits
 Describes the traits of a VkFormat value. More...
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_A2R10G10B10_UINT_PACK32 >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R16_SFLOAT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R16G16_SFLOAT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R16G16B16_SFLOAT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R16G16B16A16_SFLOAT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R32_SFLOAT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R32_UINT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R32G32_SFLOAT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R32G32_UINT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R32G32B32_SFLOAT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R32G32B32_UINT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R32G32B32A32_SFLOAT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R32G32B32A32_UINT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R64_SFLOAT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R64G64_SFLOAT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R64G64B64_SFLOAT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R64G64B64A64_SFLOAT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R8_UINT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R8_UNORM >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R8G8_UINT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R8G8_UNORM >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R8G8B8_UINT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R8G8B8_UNORM >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R8G8B8A8_UINT >
 
class  ImageFormatTraits< VkFormat::VK_FORMAT_R8G8B8A8_UNORM >
 
class  ImageFormatTraitsBase
 Trait base class assembled from component trait type and component count. More...
 
class  ImageFormatTraitsBase< COMPONENT_TRAITS_, 1 >
 
class  ImageFormatTraitsBase< COMPONENT_TRAITS_, 2 >
 
class  ImageFormatTraitsBase< COMPONENT_TRAITS_, 3 >
 
class  ImageFormatTraitsBase< COMPONENT_TRAITS_, 4 >
 
class  ImageLoader
 General purpose image loader. More...
 
class  ManagedUbo
 Template class for managing a UBO. For Host -> Device synchronization this utilises a DualBuffer. More...
 
class  ManagedUboBase
 
class  ManagedVectorBuffer
 Class maintaining a resizable array of templated classes in a managed buffer. More...
 
class  NoiseSource
 Uses std::mt19937_64 to generate a r32u image of decent quality random noise. More...
 
class  PipelineBuilder
 Class to quickly build a default pipeline. Ownership is transfered to caller. TODO: THIS CLASS SHOULD BE REWORKED => all properties of the pipeline should be configurable, for example by exposing the underlying structs directly, instead of individual access methods. More...
 
class  PipelineLayout
 Class that holds memory ownership of a vulkan pipeline layout. More...
 
class  ShaderStageCreateInfos
 Helper to create a simple set of shader stage create infos, that all use main as shader start point. Usage: Create object, add stages with modules, use local variable as in place vector. More...
 

Typedefs

using ComponentTraits_None = ComponentTraits< std::nullptr_t, nullptr, false, false >
 
using ComponentTraits_Fp16 = ComponentTraits< uint16_t, 0x3C00, true, true >
 16 bit float component type (1 component per channel)
 
using ComponentTraits_Fp32 = ComponentTraits< uint32_t, 0x3F800000, true, true >
 32 bit float component type (1 component per channel)
 
using ComponentTraits_Fp64 = ComponentTraits< uint64_t, 0x3FF0000000000000, true, true >
 64 bit float component type (1 component per channel)
 
using ComponentTraits_UInt32 = ComponentTraits< uint32_t, std::numeric_limits< uint32_t >::max(), false, false >
 32 bit unsigned integer component type (1 component per channel)
 
using ComponentTraits_UInt8 = ComponentTraits< uint8_t, std::numeric_limits< uint8_t >::max(), false, false >
 8 bit unsigned integer component type (1 component per channel)
 
using ComponentTraits_PackedAlpha2Color30 = ComponentTraits< uint32_t, 0b11, false, false >
 32 bit unsigned integer packed component type (2 bits alpha, 30 bits color, 1 component per texel, multiple channels per component)
 

Enumerations

enum class  EImageChannel {
  Unknown = -1 , R = 0 , G , B ,
  A , Y
}
 

Functions

std::string PrintSize (size_t size)
 
template<typename T >
void AccumulateHash (size_t &hash, const T &v)
 
void AccumulateRaw (size_t &hash, const void *data, size_t size)
 Calculates a hash value for any block of memory.
 

Typedef Documentation

◆ ComponentTraits_Fp16

using foray::util::ComponentTraits_Fp16 = typedef ComponentTraits<uint16_t, 0x3C00, true, true>

16 bit float component type (1 component per channel)

◆ ComponentTraits_Fp32

using foray::util::ComponentTraits_Fp32 = typedef ComponentTraits<uint32_t, 0x3F800000, true, true>

32 bit float component type (1 component per channel)

◆ ComponentTraits_Fp64

using foray::util::ComponentTraits_Fp64 = typedef ComponentTraits<uint64_t, 0x3FF0000000000000, true, true>

64 bit float component type (1 component per channel)

◆ ComponentTraits_None

using foray::util::ComponentTraits_None = typedef ComponentTraits<std::nullptr_t, nullptr, false, false>

◆ ComponentTraits_PackedAlpha2Color30

using foray::util::ComponentTraits_PackedAlpha2Color30 = typedef ComponentTraits<uint32_t, 0b11, false, false>

32 bit unsigned integer packed component type (2 bits alpha, 30 bits color, 1 component per texel, multiple channels per component)

◆ ComponentTraits_UInt32

using foray::util::ComponentTraits_UInt32 = typedef ComponentTraits<uint32_t, std::numeric_limits<uint32_t>::max(), false, false>

32 bit unsigned integer component type (1 component per channel)

◆ ComponentTraits_UInt8

using foray::util::ComponentTraits_UInt8 = typedef ComponentTraits<uint8_t, std::numeric_limits<uint8_t>::max(), false, false>

8 bit unsigned integer component type (1 component per channel)

Enumeration Type Documentation

◆ EImageChannel

enum class foray::util::EImageChannel
strong
Enumerator
Unknown 

Function Documentation

◆ AccumulateHash()

template<typename T >
void foray::util::AccumulateHash ( size_t &  hash,
const T &  v 
)
inline

◆ AccumulateRaw()

void foray::util::AccumulateRaw ( size_t &  hash,
const void *  data,
size_t  size 
)
inline

Calculates a hash value for any block of memory.

◆ PrintSize()

std::string foray::util::PrintSize ( size_t  size)