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_t container class for GPU data.
- clear_value typesafe alternative to vk::ClearValue
-
framebuffer_t 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_t 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_t final Describes a collection of resources that can be used to initialize a core::
ivk:: material_t. - blendstate describes the blend operation (source/destination) per color component in the render operation.
- sampler_t final describes the data to build a core::
ivk:: sampler_t instance - window contains the data to initialize a core::
os:: surface
-
ecs All ECS related implementations.
- components ECS Components.
- systems ECS Systems.
-
gfx namespace that deals with the abstract render objects
- bundle final
- commit_instruction description of a memory commit instruction. Tries to offer some safer mechanisms.
- computepass describes a compute stage in the render_
graph - drawgroup a collection of draw instructions to be recorded and sent to the GPU.
- render_graph Describes a fully contained set of graphics instructions \detail A rendergraph allows you to connect the various draw/compute-passes and describe their interdependencies so that it can organize their invocations in a safe manner.
-
igles OpenGLES API abstraction.
- compute core::
igles:: material_t-like object for compute resources
- compute core::
-
ivk deals with all objects that are directly mapped to vulkan objects (i.e. they have internal vulkan concepts in them)
- buffer_t maps a memory region and interfaces with the driver for read/writes
- context encapsulated a graphics context.
- drawpass a pass describes a start-to-finish sequence of commands to render into a set of rendertargets.
-
framebuffer_t final describes a set of images to use as rendertargets
- binding describes a single binding point (can be many) in a framebuffer.
- geometry_t describes the driver visible concept of geometry.
- material_t final class that creates a bindable collection of resources that can be used in conjuction with a surface to render.
- 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_t 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_t a texture resource used for rendering, either as target, or as input resource.
-
meta contains all extensions to the psl::
meta namespace. -
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.
- 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.
- vertex_stream_t vertex_
stream_ t 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_t 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
- concepts Utility concepts.
-
ecs Entity Component System.
-
details specialized implementation of psl::
sparse_array - component_container_t implementation detail that stores the component data
- component_key_t Container type for unique component types. These should be construced using the
component_key_t::
helper function.generate - dependency_pack describes a set of dependencies for a given system
- staged_sparse_memory_region_t A specialized container type to store components in a type agnostic manner.
- component_traits Specialize this type to override default behaviours, or to enable serialization.
- direct_t Guarantees direct access to the underlying data.
- empty tag type to circumvent constructing an object in the backing data
- entity_t entity points to a collection of components
- except tag that disallows a certain component to be present on the given entity.
- filter tag allows you to filter on sets of components
- full_t requires a pack to be whole when filled in
- indirect_t The data is not optimized for direct access.
- on_add tag that allows you to select entities (and components) that have recently added the given component type
- on_break specialized tag of
on_
remove - on_combine specialized tag of
on_
add - on_remove tag that allows you to listen to the event of a component of the given type being removed.
- partial_t allows packs to exist in a partial state
-
details specialized implementation of psl::
- 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
- 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