classes
-
core the engine core, here all graphics resources and render operations are described.
-
data contains all data types that can be serialized to/from disk.
- buffer container class for GPU data.
- clear_value typesafe alternative to vk::ClearValue
-
framebuffer final container class that describes the data to create a set of rendertargets.
-
attachment final describes a single rendertarget in a framebuffer.
- description final describes how the rendertarget should be loaded, stored, it's sample count, and what transition layouts it should go through.
-
attachment final describes a single rendertarget in a framebuffer.
-
geometry describes a stream of data that will be uploaded to the GPU as geometry data.
- constants contains globally pre-defined keys for common streams that most engines have.
-
material final Describes a collection of resources that can be used to initialize a core::
ivk:: material. - blendstate describes the blend operation (source/destination) per color component in the render operation.
- sampler final describes the data to build a core::
ivk:: sampler instance - window contains the data to initialize a core::
os:: surface
-
gfx namespace that deals with the abstract render objects
- commit_instruction description of a memory commit instruction. Tries to offer some safer mechanisms.
- drawgroup a collection of draw instructions to be recorded and sent to the GPU.
-
ivk deals with all objects that are directly mapped to vulkan objects (i.e. they have internal vulkan concepts in them)
- buffer maps a memory region and interfaces with the driver for read/writes
- context encapsulated a graphics context.
-
framebuffer final describes a set of images to use as rendertargets
- attachment describes a single attachment in a framebuffer.
- binding describes a single binding point (can be many) in a framebuffer.
- geometry describes the driver visible concept of geometry.
- material final class that creates a bindable collection of resources that can be used in conjuction with a surface to render.
- pass a pass describes a start-to-finish sequence of commands to render into a set of rendertargets.
- pipeline encapsulated the concept of a graphics pipeline on the GPU
- pipeline_cache the pipeline cache allows sharing of pipelines between various materials.
- pipeline_key the pipeline key creates a hash of the important elements of a vk::Pipeline
- sampler final sampler object for texture filtering and lookups
-
shader creates a shader object from a SPIR-V module
- specialization contains the specialization info that might be used by the shader.
- swapchain describes a framebuffer that is specially handled and created by the driver
- texture a texture resource used for rendering, either as target, or as input resource.
-
meta contains all extensions to the ::meta namespace.
- shader final contains extensions for meta data when loading shader files.
- texture final Custom meta data that describes a texture. i.e. width, height, format, etc..
-
os specific OS wrappers and resources.
- surface primitive object that create a surface we can render on.
- resource deals with resource creation, tracking, and managing.
-
systems contains systems that are responsible for handling certain aspects (audio, input, physics, etc..).
-
input handles all inputs and sends out generic events that can be subscribed to.
- mf_mouse_coordinate<T, std::void_t<decltype(std::declval<T&>().on_mouse_move_coords(std::declval<mouse_coordinate>()))>> SFINAE tag that is used to detect the method signature for the mouse move (absolute coordinates) event.
- mf_mouse_delta<T, std::void_t<decltype(std::declval<T&>().on_mouse_move(std::declval<mouse_delta>()))>> SFINAE tag that is used to detect the method signature for the mouse delta move event.
- mf_on_key_held<T, std::void_t<decltype(std::declval<T&>().on_key_held(std::declval<keycode>()))>> SFINAE tag that is used to detect the method signature for the key held event.
- mf_on_key_pressed<T, std::void_t<decltype(std::declval<T&>().on_key_pressed(std::declval<keycode>()))>> SFINAE tag that is used to detect the method signature for the key press event.
- mf_on_key_released<T, std::void_t<decltype(std::declval<T&>().on_key_released(std::declval<keycode>()))>> SFINAE tag that is used to detect the method signature for the key release event.
- mf_on_mouse_held<T, std::void_t<decltype(std::declval<T&>().on_mouse_held(std::declval<mousecode>()))>> SFINAE tag that is used to detect the method signature for the mouse held event.
- mf_on_mouse_pressed<T, std::void_t<decltype(std::declval<T&>().on_mouse_pressed(std::declval<mousecode>()))>> SFINAE tag that is used to detect the method signature for the mouse press event.
- mf_on_mouse_released<T, std::void_t<decltype(std::declval<T&>().on_mouse_released(std::declval<mousecode>()))>> SFINAE tag that is used to detect the method signature for the mouse release event.
- mf_on_scroll<T, std::void_t<decltype(std::declval<T&>().on_scroll(std::declval<scroll_delta>()))>> SFINAE tag that is used to detect the method signature for the mouse scroll event.
- mouse_coordinate absolute mouse coordinates that also contain the surface width/height.
- mouse_delta contains the mouse delta coordinates in respect to the last message tick.
- scroll_delta delta information for the mouse scroll wheel.
-
input handles all inputs and sends out generic events that can be subscribed to.
- stream stream contains a type erased "stream" of memory with basic facilities to protect it from incorrect casts.
-
data contains all data types that can be serialized to/from disk.
-
memory this namespace contains types and utilities for managing regions of memory
- allocator_base base class that defines the interface for an allocator.
- block_allocator predifined block size allocator, much faster than most allocators, but can only allocate one sized blocks.
- default_allocator default allocator that internally works using lists
- range defines a begin/end location in (virtual) memory (in respect to the region, or segment).
- region defines a region of memory that might be physically backed depending on the allocator.
- segment a segment defines a addressable and mapped region of memory.
- sparse_array container type that is fast to iterate, but has non-continuous interface
-
psl paradigm standard library
- math conversions
-
meta contains utilities to identify types and instances at runtime and on disk.
- file disk-based representation of a runtime instance.
- library container class for meta::
file's
-
serialization serialization primitives and helpers
- polymorphic contains the polymorphic lambda constructor for your polymorphic type
- property wrapper class to signify a data member can be serialized and deserialized.
- string16 UTF-16 class namespace that contains the typedefs for the string objects, as well as helper methods.
- string32 UTF-32 class namespace that contains the typedefs for the string objects, as well as helper methods.
- string8 UTF-8 class namespace that contains the typedefs for the string objects, as well as helper methods.
- sparse_array container type that is fast to iterate, but has non-continuous interface
- static_ring_array a deque-like interface implemented as an std::array<T, N> under the hood
- UID final is an object holding a Unique IDentifier (UID)
- view_ptr a non-owning 'smart' pointer type
- std STL namespace.
-
utility this namespace contains various helper utilities to aid you.
- binary contains various utilities in helping you to convert to, and from a byte stream.
- geometry various geometry and geometry related operation utilities.
- platform platform specific utilities that help in identifying the current platform, and various specifications of it.
- string utility namespace to deal with psl::string operations.
- templates
-
debug contains some debug information, such as trace information, as well as utilities to debug.
- trace_info contains the structure of a trace