Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
|
▼Nforay | |
Napi | |
►Nas | |
CBlas | A Blas (Bottom Level Acceleration Structure) is the raytracing equivalent concept of a mesh |
CBlasInstance | A reference to a BLAS maintained by the TLAS |
CGeometryMeta | Meta information for a Geometry (gltf equivalent = Primitive). For use in raytracing shaders |
CGeometryMetaBuffer | Device local buffer maintaining GeometryMeta structs for all primitives/geometries for multiple BLAS |
CTlas | Describes a top level accerlation structure. A tlas usually holds multiple Blas. A blas is an object/mesh instance together with its transformation in 3d space |
►Nbase | |
CAppFrameTiming | Controls an apps render scheduling timing |
CDefaultAppBase | Intended as base class for demo applications. Compared to MinimalAppBase it offers a complete simple vulkan setup |
CFrameRenderInfo | Context used for render processes. This object is rebuilt for every frame. / |
CInFlightFrame | Wraps synchronization primitives and command buffers for an inflight frame |
CMinimalAppBase | Application base providing bare minimum of functionality (app lifetime, event handling, vulkan instance management) |
►CRenderLoop | Manages a single threaded, automatically balancing application lifetime |
CFrameTime | |
CFrameTimeAnalysis | Analysis |
CRenderInfo | |
►CVulkanDevice | Wraps selection and creation of a vulkan logical device |
CDefaultFeatures | |
CVulkanInstance | Wraps creation and lifetime of a vulkan instance. Includes default debug callback logging setup |
CVulkanWindowSwapchain | Combines Window, Surface and Swapchain into one managing object |
►Nbench | |
CBenchmarkBase | Base class for all benchmark types |
CBenchmarkLog | Log of a single benchmark run. All timestamps given must be relative to the same base time |
CBenchmarkTimestamp | Timestamp combining a label / id with a timestamp in milliseconds |
CDeviceBenchmark | A device benchmark based on Vulkans DeviceQuery Api. Timestamps are recorded in milliseconds. Timestamp names must be set in advance |
CHostBenchmark | A host (CPU time) benchmark based on std::chrono::high_resolution_clock. Timestamps are recorded in milliseconds |
►Ncore | |
CCombinedImageSampler | Wraps an image + sampler combination |
CCommandBuffer | VkCommandBuffer wrapper |
CContext | Non owning context object |
►CDescriptorSet | Helps with the creation of a VkDescriptorSetLayout and VkDescriptorSet |
CDescriptorInfo | |
CDeviceSyncCommandBuffer | Extension of the commandbuffer wrapper for device and/or host synchronized command buffer execution |
CHostSyncCommandBuffer | Extension of the commandbuffer wrapper for temporary host synchronized command buffer execution |
►CImageLayoutCache | Tracks ImageLayouts over the course of a frame rendering process |
CBarrier | See VkImageMemoryBarrier |
CBarrier2 | See VkImageMemoryBarrier2 |
►CManagedBuffer | Wraps allocation and lifetime functionality of a VkBuffer |
CCreateInfo | Combines all structs used for initialization |
►CManagedImage | Wraps allocation and lifetime functionality of VkImage |
CCreateInfo | Combines all structs used for initialization |
CQuickTransition | Helper struct translated to a VkImageMemoryBarrier2 struct for one-time layout transitions |
CManagedResource | Base class enforcing common interface for all classes wrapping a device resource |
►CSamplerCollection | Provides sampler objects based on VkSamplerCreateInfo specifications |
CSamplerInstance | |
CSamplerReference | Represents a reference to a VkSampler object managed by a SamplerCollection |
CSemaphoreReference | Wraps a wait or signal semaphore action |
CShaderCompilerConfig | Shader compile Options struct (moved out of class to fix clang & gcc compiler bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88165) |
►CShaderManager | Shader manager maintains a structure of shader compilations |
CIncludeFile | Represents a file included (nested) in a shader compilation, but not compiled by itself |
CShaderCompilation | Represents a unique shader compilation (input source path + config => Spirv file) |
CShaderModule | Wraps shader code driver handle (VkShaderModule). See ShaderManager for compiling shaders dynamically |
CSwapchainImageInfo | Collects information for a swapchain image |
CVulkanResource | ManagedResource variant which automates GetTypeName() overloading by returning a stringified version of VkObjectType |
►Ngltf | |
►CModelConverter | Type which reads glTF files and merges a scene of the file into the scene graph |
CIndexBindings | Variables which determine how to map gltf-model indices to scene indices/pointers |
CModelConverterOptions | Options for converting glTF models to the integrated scene graph (foray::scene::Scene) |
►Nosi | |
CEvent | Base class for operating system events |
CEventInput | Base class for events originating from input devices |
CEventInputAnalogue | Event type for an analogue input |
CEventInputBinary | Event type describing a binary input event |
CEventInputDeviceAvailability | Event type describing input devices being added or removed |
CEventInputDirectional | Event type describing a directional input event |
CEventInputMouseMoved | Event type describing a mouse cursor movement event |
CEventWindowCloseRequested | Event type fired when the windows closure is requested (by OS or user through OS) |
CEventWindowFocusChanged | Event type fired when a window gains or loses focus |
CEventWindowResized | Event type fired when a window is resized |
CInputAnalogue | Represents a single input with a state represented by a signed 16bit integer |
CInputBase | Base class for a single input channel of an input device |
CInputBinary | Represents a single input with a state represented by a boolean value |
►CInputDevice | Wraps a generic input device (mouse, keyboard, joystick, controller ...) in a hardware agnostic way |
CAxisJoystick | |
CButtonJoystick | |
CButtonKeyboard | |
CButtonMouse | |
CDirectionalMouseScroll | |
CInputDirectional | Represents a stateless directional input |
COsManager | Class of which a single instance needs to be present for interaction with the operating system via SDL |
CUtf8Path | Utf8 encoded path wrapper |
CWindow | Window class. Provides access to common properties of operating system level windows |
►Nrtpipe | |
►CGeneralShaderBindingTable | Shader binding table for storing raygen, miss and callable shader groups |
CShaderGroup | General shader group |
►CHitShaderBindingTable | Shader binding table implementation for storing hit groups (Consist of optional closesthit, anyhit and intersect shaders) |
CShaderGroup | |
CRtPipeline | Helper class wrapping 4 SBTs (Raygen, Miss, Callable, Hitgroup) and a raytracing pipeline |
►CRtShaderCollection | Helper class to manage unique Rt ShaderModules |
CEntry | |
CRtShaderEnumConversions | Enum conversion methods |
►CShaderBindingTableBase | Shader Binding Table base class, providing functions to manage custom generic shader group data and SBT building, aswell as buffer management |
CVectorRange | |
►Nscene | |
►Ngcomp | |
CAnimationManager | Handles storage and playback of animations |
CCameraManager | Manages the Camera matrix buffer and maintains a list of cameras in the scene |
CDrawDirector | Manages a collection of mesh instances, current and previous model matrices |
CDrawOp | Represents instanced draw operation of a single mesh |
CGeometryStore | Stores all geometry in a single set of index and vertex buffers |
CLightManager | Maintains a list of PunctualLight components |
CMaterialManager | Manages a device local storage buffer providing material information for rendering |
►CTextureManager | Manages textures and samplers |
CTexture | |
CTlasManager | Manages a Tlas for a scene |
►Nncomp | |
CCamera | Defines a camera with projection matrix |
►CFreeCameraController | A simple camera controller for free flight |
CInputStates | |
CMeshInstance | Defines an instance of a mesh |
CPunctualLight | Defines a simple punctual light (directional or point) |
CTransform | Defines a nodes transform relative to its parent (or world origin, if no parent is set) |
CAnimation | Represents an animation, defined by atleast one channel affecting one node property each |
CAnimationChannel | A channel is the animation of a single node property |
CAnimationKeyframe | A set of values at a time point |
CAnimationSampler | A collection of keyframes |
►CCallbackDispatcher | Type maintaining callback lists for event distribution |
CCallbackVector | |
CCallbackVector< TCallback, true > | |
CCameraUboBlock | Uniform buffer object layout for camera matrices |
►CComponent | Base class for all types manageable by registry |
CDrawCallback | Base class for implementing the draw callback |
COnEventCallback | Base class for implementing the onevent callback |
COnResizedCallback | |
CUpdateCallback | Base class for implementing the update callback |
CDrawPushConstant | Push Constant helper type |
CEmissiveTriangle | A reference to an emissive triangle |
CGlobalComponent | |
CMaterial | Represents the default gltf pbr material type, capable of representing opaque surfaces with a metallic/roughness model including emission |
CMesh | Type describing a single mesh object, described by multiple Primitive objects |
CNode | A scene node. Extends the registry with hierarchical information |
CNodeComponent | |
CPlaybackConfig | |
CPrimitive | "An object binding indexed or non-indexed geometry with a material." according to the glTF spec. It's a subset of a mesh and has its own set of vertices/indices as well as its own material. All mesh data is contained in one big buffer, so "First" is used to get the correct offset into the buffer |
CRegistry | Manages a type identified list of components |
CScene | Provides registries and methods as the anchor of a component based scene |
CSceneDrawInfo | Temporary type passed to components when drawing the scene |
CSceneUpdateInfo | Temporary type passed to components when updating the scene |
CSimpleLight | Describes a simplified light source |
CVertex | Vertex |
CVertexComponentBinding | Binding of component to shader input location |
CVertexInputStateBuilder | Helper for building a VkPipelineVertexInputStateCreateInfo struct |
►Nstages | |
Nrtbindpoints | |
CBlitStage | Stage which performs an image blit (more capable copy from one image to another) |
►CComparerStage | Displays two images of any type next to each other, and get a "pipette" readout at the mouse location |
CInputInfo | Argument struct for setting inputs |
CPipetteValue | |
CPushConstant | |
CSubStage | Value between 0...1 defining the split value |
CComputeStageBase | Base class for compute shaders |
CDefaultRaytracingStageBase | Extended version of MinimalRaytracingStageBase limited to a single output image, descriptorset but providing built in support for scene (Camera, Tlas, Geometry, Materials), EnvironmentMap and Noise Texture |
CDenoiserConfig | Config struct for initialization of denoiser stages |
CDenoiserStage | Base class for denoiser implementations |
CExternalDenoiserStage | Base class for externally computing denoiser implementations (e.g. OptiX Denoiser) |
►CGBufferStage | Utilizes rasterization to render a GBuffer output |
CPerImageInfo | |
CImageToSwapchainStage | The only purpose of this class is to copy the image onto the swapchain |
CImguiStage | The ImguiStage renders the imgui menu on top of an existing image or the swapchain. This image is passed via the backgroundImage |
CMinimalRaytracingStageBase | Minimalist setup for a Raytracing Stage |
CRasterizedRenderStage | Base class for rasterized render stages (no built-in functionality) |
CRenderStage | Render stage base class giving a common interface for rendering processes |
►Nutil | |
►Nimpl | |
CExrLoaderCache | |
CStbLoaderCache | |
CBufferSection | |
CComponentTraits | Describes the traits of a component type |
CDualBuffer | Helper class for organizing CPU -> GPU data synchronisation. In flight data is stored on host side, and copied to GPU right before being used |
CEnvironmentMap | Experimental type loading an environment map in spherical representation, also generates mip maps |
CExternalSemaphore | Timeline Semaphore exposing handles for synchronization with other Apis (e.g. Cuda for OptiX denoising) |
CHistoryImage | Helper object managing a copy of an existing image for use as history information (reprojection etc.) |
CImageFormatTraits | Describes the traits of a VkFormat value |
CImageFormatTraitsBase | Trait base class assembled from component trait type and component count |
►CImageLoader | General purpose image loader |
CImageInfo | |
CManagedUbo | Template class for managing a UBO. For Host -> Device synchronization this utilises a DualBuffer |
CManagedUboBase | |
CManagedVectorBuffer | Class maintaining a resizable array of templated classes in a managed buffer |
CNoiseSource | Uses std::mt19937_64 to generate a r32u image of decent quality random noise |
CPipelineBuilder | 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 |
CPipelineLayout | Class that holds memory ownership of a vulkan pipeline layout |
CShaderStageCreateInfos | 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 |
CException | An extension of std::exception providing support for formatted error messages. Exceptions should always be catched via "catch (const std::exception& ex)", and thrown by value (Just use builtin static throw functions) |
CNoMoveDefaults | Simple types for supressing automatic definition of duplicating move constructors & operator |
CPolymorphic | Simple type for forcing a type to be polymorphic |
▼Nstd | |
Chash< foray::osi::Utf8Path > |