Component which stores the AABB of an entity with a collider component.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
System argument which provides read access to the resource T if it exists, or query argument which provides read access to the component T if it exists.
System argument which provides write access to the resource T if it exists, or query argument which provides write access to the component T if it exists.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Stores the state of a single input action, such as "jump" or "attack".
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
struct FrameHolds the whole state of serialization.
+
+
+
class PackagefinalA utility object which is capable of storing the data of any trivially serializable object. One way to understand this class is to think of it as if it were a JSON representation of an object.
+
struct QBMatrixRepresents the data read from a matrix in a QB file.
+ classBlueprintfinalStores a bundle of entities and their respective components, which can be easily spawned into a world. This is in a way the 'Prefab' of CUBOS., but lower level.
+
+
struct BufferImplementation of the IBuffer interface for the component type ComponentType.
+
struct IBufferStores all component data of a certain type.
+ classEntityManagerfinalHolds and manages entities and their component masks.
+
+
struct EntityDataInternal data struct containing the state of an entity.
+
class IteratorUsed to iterate over all entities in a manager with a certain component mask.
+
+
+
+ classEventPipeResource which stores events of type T.
+
+
struct EventStores an event, its mask and its read count.
+
+
+
+ classEventReaderSystem arguments used to read events of type T.
+
+
class IteratorUsed to iterate over events received by a reader.
+
+
+
class EventWriterSystem argument which allows the system to send events of type T to other systems.
+
class IStorageAbstract parent class for all storages.
+
class MapStorageStorage implementation that uses an std::unordered_map.
+
class NullStorageStorage implementation that doesn't keep any data, made for zero-sized components.
+
class OptReadSystem argument which provides read access to the resource T if it exists, or query argument which provides read access to the component T if it exists.
+
class OptWriteSystem argument which provides write access to the resource T if it exists, or query argument which provides write access to the component T if it exists.
+
+ classQueryHolds the result of a query over all entities in world which match the given arguments.
+
+
class IteratorUsed to iterate over the results of a query.
struct EntitySelectorResource which identifies the currently selected entity.
+
+
+
struct ActiveCamerasResource which identifies the camera entities to be used by the renderer.
+
struct AmbientLightResource which stores the ambient light.
+
class AnyAssetHandle to an asset of any type. May either be weak or strong. Weak handles do not guarantee the asset is loaded, while strong handles do.
+
struct ArgumentsResource used for storing program arguments.
class AssetBridgeBridges are the objects responsible for loading and saving assets from/to disk. They form the bridge between the asset manager and the virtual file system.
+
+ classAssetMetafinalStores metadata about an asset - the data stored in .meta files. Each asset has a corresponding meta object, which contains load or import parameters.
+
+
struct ExcludeUsed as context to exclude parameters from being serialized.
+
+
+
+ classAssetsfinalResource which manages all assets. Responsible for loading and unloading assets, storing them in memory, and providing access to them.
+
+
struct EntryRepresents a known asset - may or may not be loaded.
+
struct TaskStores all data necessary to load an asset.
+
+
+
class BaseRendererInterface which abstracts different rendering methods.
+
class BinaryBridgeBridge for loading and saving assets which are serialized to and from a binary file.
+
struct BoxColliderComponent which adds a box collider to an entity.
struct CandidateHashHash function to allow Candidates to be used as keys in an unordered_set.
+
struct SweepMarkerMarker used for sweep and prune.
+
+
+
struct CameraComponent which defines parameters of a camera used to render the world.
+
struct CapsuleColliderComponent which adds a capsule collider to an entity.
+
struct ColliderAABBComponent which stores the AABB of an entity with a collider component.
+
class CubosfinalRepresents the engine itself, and exposes the interface with which the game developer interacts with. Ties up all the different parts of the engine together.
+
class DeferredRendererRenderer implementation which uses deferred rendering.
+
struct DeltaTimeResource which stores the time since the last iteration of the main loop started.
+
struct DirectionalLightComponent which makes an entity behave like a directional light.
+
class FileBridgeAbstract bridge type defined to reduce boilerplate code in bridge implementations which open a single file to load and save assets.
+
class InputfinalResource which stores the input bindings for multiple players.
+
class InputActionfinalStores the state of a single input action, such as "jump" or "attack".
+
class InputAxisfinalStores the state of a single input axis, such as "move forward" or "move right".
+
class InputBindingsfinalStores the input bindings for a single player.
+
class JSONBridgeBridge for loading and saving assets which are serialized to and from a JSON file.
+
struct LocalToWorldComponent which stores the transformation matrix of an entity, from local to world space.
+
struct PlaneColliderComponent which adds a plane collider to an entity.
+
struct PointLightComponent which makes an entity behave like a point light.
+
struct PositionComponent which assigns a position to an entity.
+
class PostProcessingBloomA post processing pass that adds a "bloom" effect to any bright objects in the scene.
+
class PostProcessingCopyA simple post processing pass that copies the input texture to the output.
+
class PostProcessingManagerfinalResponsible for managing the post processing passes.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Interface for a bridge between the CUBOS. virtual file system and the real world.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Bridges are the objects responsible for loading and saving assets from/to disk. They form the bridge between the asset manager and the virtual file system.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ using AssetMetaRead = core::memory::ReadGuard<AssetMeta, std::shared_lock<std::shared_mutex>>
+
+
Read-only guard for an asset's metadata.
+
+ using AssetMetaWrite = core::memory::WriteGuard<AssetMeta, std::unique_lock<std::shared_mutex>>
+
+
Read-write guard for an asset's metadata.
+
+
template<typename T>
+ using AssetRead = core::memory::ReadGuard<T, std::shared_lock<std::shared_mutex>>
+
+
Read-only guard for an asset's data.
+
+
template<typename T>
+ using AssetWrite = core::memory::WriteGuard<T, std::unique_lock<std::shared_mutex>>
+
+
Read-write guard for an asset's data.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Stores the state of a single input axis, such as "move forward" or "move right".
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Bridge for loading and saving assets which are serialized to and from a binary file.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
A post processing pass that adds a "bloom" effect to any bright objects in the scene.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Stores a bundle of entities and their respective components, which can be easily spawned into a world. This is in a way the 'Prefab' of CUBOS., but lower level.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Stream implementation which writes to/reads from a buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Adds a task to the thread pool. Starts when a thread becomes available.
+
+
+
Parameters
+
+
+
+
task
+
Task to add.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ void cubos::core::al::impl::Source::setGain(float gain) pure virtual
+
+
Sets the gain of the source.
+
+
+
Parameters
+
+
+
+
gain
+
Gain.
+
+
+
+
+
+
+ void cubos::core::al::impl::Source::setPitch(float pitch) pure virtual
+
+
Sets the pitch of the source.
+
+
+
Parameters
+
+
+
+
pitch
+
Pitch.
+
+
+
+
+
+
+ void cubos::core::al::impl::Source::setLooping(bool looping) pure virtual
+
+
Sets whether the source plays in a loop.
+
+
+
Parameters
+
+
+
+
looping
+
Looping flag.
+
+
+
+
+
+
+ void cubos::core::al::impl::Source::setRelative(bool relative) pure virtual
+
+
Sets whether the source position and velocity is relative to the listener or not.
+
+
+
Parameters
+
+
+
+
relative
+
Relative flag.
+
+
+
+
+
+
+ void cubos::core::al::impl::Source::setDistance(float maxDistance) pure virtual
+
+
Sets the maximum distance at which the source is audible.
+
+
+
Parameters
+
+
+
+
maxDistance
+
Maximum distance.
+
+
+
+
+
+
+ void cubos::core::al::impl::Source::setConeAngle(float coneAngle) pure virtual
+
+
Sets the cone angle of the source, in degrees. By default, 360.
+
+
+
Parameters
+
+
+
+
coneAngle
+
Angle, in degrees.
+
+
+
+
+
+
+ void cubos::core::al::impl::Source::setConeGain(float coneGain) pure virtual
+
+
Sets the cone gain of the source.
+
+
+
Parameters
+
+
+
+
coneGain
+
Gain.
+
+
+
+
+
+
+ void cubos::core::al::impl::Source::setConeDirection(const glm::vec3& direction) pure virtual
+
+
Sets the cone direction of the source.
+
+
+
Parameters
+
+
+
+
direction
+
Direction.
+
+
+
+
+
+
+ void cubos::core::al::impl::Source::setReferenceDistance(float referenceDistance) pure virtual
+
+
Sets the distance under which the volume for the source would normally drop by half.
+
+
+
Parameters
+
+
+
+
referenceDistance
+
Distance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Interface for a bridge between the CUBOS. virtual file system and the real world.
+
+
By real world, we mean something such as a file on the OS file system or a network connection. The archive is responsible for creating and destroying files, supplying streams for reading and writing, and retrieving information about existing files.
Each file in an archive is represented by a unique integer identifier. The identifier 0 is reserved for errors, and the identifier 1 is reserved for the root file of the archive.
The root file may be a directory or a regular file. If its a directory, when mounted, the archive will take the form of a directory, with the root file being placed on the mount point. If the root file is a regular file, then the mount point will be a regular file.
This class is not meant to be thread-safe - it is the responsibility of the File class to ensure that the same file is not accessed or modified by multiple threads at the same time.
Implementations should crash when called with invalid arguments - since they're only called by File, its okay to assume the arguments are correct (please do use asserts though).
File stream, or nullptr if the file could not be opened.
+
+
+
+
Although a bit hacky, the handle parameter is used to keep a reference to the respective File alive, preventing the file from being destroyed while the stream is open.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Implementation of the abstract Deserializer class for deserializing from raw binary data. This class allows data to be deserialized from both little and big endian formats.
Indicates that a dictionary is no longer being deserialized. The fail bit is set on failure.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Implementation of the abstract Serializer class for serializing to binary data. This class allows data to be serialized in both little and big endian formats.
Indicates that a dictionary is currently being serialized.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Stores the context necessary to serialize or deserialize data. This is done through a type map, which stores an instance for each type added (akin to the ECS resources).
Pushes a new sub-context to the stack. The sub-context acts as a group of values associated with a single push. The reference must be valid until the sub-context is popped.
Checks if there is data associated with the given type.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Indicates that a dictionary is currently being serialized.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Abstract class for deserializing data in a format-agnostic way. Each deserializer implementation is responsible for implementing its own primitive deserialization methods: readI8, readString, etc.
Deserializes an object. The cubos::core::data::deserialize function must be implemented for the given type. The fail bit is set if the deserialization fails.
+
+
+
+ void cubos::core::data::Deserializer::beginObject() pure virtual
+
+
Indicates that a object is currently being deserialized. The fail bit is set on failure.
+
+
+
+ void cubos::core::data::Deserializer::endObject() pure virtual
+
+
Indicates that a object is no longer being deserialized. The fail bit is set on failure.
+
+
+
+ std::size_t cubos::core::data::Deserializer::beginArray() pure virtual
+
+
+
+
+
Returns
+
The length of the array.
+
+
+
+
Indicates that an array is currently being deserialized. The fail bit is set on failure.
+
+
+
+ void cubos::core::data::Deserializer::endArray() pure virtual
+
+
Indicates that an array is no longer being deserialized. The fail bit is set on failure.
+
+
+
+ std::size_t cubos::core::data::Deserializer::beginDictionary() pure virtual
+
+
+
+
+
Returns
+
The length of the dictionary (always 0 on failure).
+
+
+
+
Indicates that a dictionary is being deserialized. The fail bit is set on failure.
+
+
+
+ void cubos::core::data::Deserializer::endDictionary() pure virtual
+
+
Indicates that a dictionary is no longer being deserialized. The fail bit is set on failure.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Archive implementation which reads data embedded in the application. Meant to be used with the quadrados embed tool.
+
+
Can be used to create single-file applications, where all the data is embedded in the executable.
This archive accesses a global map of data, where embedded data can be registered with a given name. Then, to access that data, an instance of this archive is created pointing to that name.
The embed tool generates source files which define and register that data. By linking those files into your application, you're making the data available to be accessed through an instance of this archive.
File stream, or nullptr if the file could not be opened.
+
+
+
+
Although a bit hacky, the handle parameter is used to keep a reference to the respective File alive, preventing the file from being destroyed while the stream is open.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Represents a file in the virtual file system of the engine.
+
+
Instances of this class are always held through a File::Handle, which is just a smart shared pointer.
Files may either be regular files or directories. Directories can have children files, but no data. Regular files are only allowed inside mounted archives, since they must have data associated with them, while the directories are just a way to organize the files.
Creates a new file on a path relative to this file.
+
+
+
Parameters
+
+
+
+
path
+
Relative path to the file.
+
+
+
directory
+
Whether the new file should be a directory.
+
+
+
+
+
Returns
+
Handle to the file, or nullptr on failure.
+
+
+
+
The destination location must be writeable - that is, it must be under a mounted writeable archive. If a file at the given path already exists, it is returned instead. Any parent directories that may be necessary are created.
This method fails on the following conditions:
path is absolute or invalid.
a parent directory in the path does not exist and cannot be created.
a parent directory in the path already exists as a regular file.
a file of a different type already exists at the destination.
Whether the file was successfully marked for destruction.
+
+
+
+
Although the file will only be deleted when no more references to it exist, it is immediately removed from the virtual file system and this method is called recursively on all its children.
First child, or nullptr if this file is not a directory or if it is empty.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
If the file is being written to, blocks until the other threads are done with the file.
This method fails on the following conditions:
FileSystem::find(path) fails.
file->open(mode) fails.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Indicates that a dictionary is no longer being deserialized. The fail bit is set on failure.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Implementation of the abstract Serializer class for serializing to JSON. Each time a top-level primitive/object/array/dictionary is written, its JSON output is written to the underlying stream.
Indicates that a dictionary is currently being serialized.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
A utility object which is capable of storing the data of any trivially serializable object. One way to understand this class is to think of it as if it were a JSON representation of an object.
+
+
While packages are serialiable, they are not deserializable. This is because there's no way to know what type the package was serialized from. If you know what type the package was serialized from, and want to deserialize it, you can use the type's deserialization function.
Usage example:
auto pkg = Package::from(mySerializableObject);
+pkg.field("position").field("x").set(1.0f);
+pkg.field("position").field("y").set(2.0f);
+pkg.field("position").field("z").set(3.0f);
+pkg.into(myDeserializableObject);
+// myDeserializableObject will hold the same data as
+// mySerilizableObject but with the position set to (1, 2, 3).
+
Packages the specified data into this package. This will change the type of the package. This may be a problem in some cases. For example, if an uint8_t is packaged, then set to a uint16_t, and then binary serialized, it won't be deserializable back to an uint8_t (only to a uint16_t). One way to avoid this problem is to use Package::change instead.
Packages the specified int64_t into this package, without changing the type of the package. If the types aren't compatible, this will fail. For example, 255 would be compatible with uint8_t, but -1 or 256 would not.
Packages the specified uint64_t into this package, without changing the type of the package. If the types aren't compatible, this will fail. For example, 255 would be compatible with uint8_t, but 256 would not.
Packages the specified double into this package, without changing the type of the package. If the types aren't compatible, this will fail. If the underlying type is a float, the precision will be lowered.
Optional context to use when unpackaging the data.
+
+
+
+
+
Returns
+
True if the unpackaging succeeded, false otherwise.
+
+
+
+
Unpackages the package into data. If there is a field missing or there's a type mismatch, the unpackaging may fail. It is guaranteed that unpackaging a package created from a certain type to the same type never fails.
+
+
+
+
+ template<typename T>
+
+ requires std::default_initializable<T> T cubos::core::data::Package::get(Context* context = nullptr) const
+
+
+
+
Template parameters
+
+
+
+
T
+
The type of the data to unpackage.
+
+
+
+
Parameters
+
+
+
+
context
+
Optional context to use when unpackaging the data.
+
+
+
+
+
Returns
+
The data.
+
+
+
+
Alternative to Package::into for types which are default constructible. Unpackages the package and returns the data, and aborts if the type isn't the expected. Should only be used when you're sure the type is correct.
Gets the size of the package. For empty packages, or scalars (including strings), this is always 0, or 1, respectively. For objects, arrays and dictionaries, this is, respectively, the field count, the element count and the key-value pair count.
Gets an element of the array stored in this package. If the package isn't an array, this method will abort. If the index is out of bounds, this method will abort.
Gets the dictionary stored in this package. The dictionary is returned as a vector of the packaged key-value pairs. If the package isn't a dictionary, this method will abort.
Gets the dictionary stored in this package. The dictionary is returned as a vector of the packaged key-value pairs. If the package isn't a dictionary, this method will abort.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Abstract class for serializing data in a format-agnostic way. Each serializer implementation is responsible for implementing its own primitive serialization methods: writeI8, writeString, etc.
More complex types can be serialized by implementing a specialization of the cubos::core::data::serialize function:
struct MyType
+{
+ int32_t a;
+};
+
+// In the corresponding .cpp file.
+void cubos::core::data::serialize<MyType>(Serializer& s, const MyType& obj, const char* name)
+{
+ s.write(obj.a, "a");
+}
+
+// Alternatively, the type can define a `serialize` method.
+
+class MyType
+{
+public:
+ void serialize(Serializer& s, const char* name);
+
+private:
+ int32_t a;
+};
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
File stream, or nullptr if the file could not be opened.
+
+
+
+
Although a bit hacky, the handle parameter is used to keep a reference to the respective File alive, preventing the file from being destroyed while the stream is open.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Indicates that a dictionary is no longer being deserialized. The fail bit is set on failure.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Indicates that a dictionary is currently being serialized.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Gets information about the requirements of the system.
+
+
+
+
Returns
+
Information about the system.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Stores a bundle of entities and their respective components, which can be easily spawned into a world. This is in a way the 'Prefab' of CUBOS., but lower level.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Aborts if name does not match any entity of the blueprint.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
When serializing/deserializing, if there's a data::SerializationMap<Entity, std::string> in the context, it will be used to (de)serialize strings representing the entities. Otherwise, the identifiers will be (de)serialized as objects with two fields: their index and their generation.
Checks if the entity is null, a special value returned on errors.
+
+
+
+
Returns
+
Whether the entity is null.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Returns an iterator which points to the end of the entity manager.
+
+
+
+
Returns
+
Iterator which points to the end of the entity manager.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Used to iterate over all entities in a manager with a certain component mask.
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Sends the given event to the event pipe with the given mask.
+
+
+
Parameters
+
+
+
+
event
+
Event.
+
+
+
mask
+
Mask.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ std::type_index cubos::core::ecs::IStorage::type() const pure virtual
+
+
Gets the type the components being stored here.
+
+
+
+
Returns
+
Component type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
System argument which provides read access to the resource T if it exists, or query argument which provides read access to the component T if it exists.
+
+
+
Template parameters
+
+
+
+
T
+
Resource or component type.
+
+
+
+
+
While the Read demands that the resource or component exists, this argument does not. Can be used as a pointer with both the -> and * operators.
Reference to the resource or component, aborting if it does not exist.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
System argument which provides write access to the resource T if it exists, or query argument which provides write access to the component T if it exists.
+
+
+
Template parameters
+
+
+
+
T
+
Resource or component type.
+
+
+
+
+
While the Write demands that the resource or component exists, this argument does not. Can be used as a pointer with both the -> and * operators.
Accesses the resource or component, aborting if it does not exist.
+
+
+
+
Returns
+
Reference to the resource or component.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
This query will return all entities with a Position and Velocity component. Accessors to Rotation and Scale components are also passed but may be null if the component is not present in the entity. Whenever mutability is not needed, Read/OptRead should be used.
Requested components, or std::nullopt if the entity does not match the query.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Dereferences to a tuple containing the queried entity and its components.
+
+
+
+
Returns
+
Tuple containing the entity and its components.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Type index of the component, or std::nullopt if the component type was not found.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Can only be called after calling prepare() on the same world.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Returns an iterator which points to the end of the world.
+
+
+
+
Returns
+
Iterator.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Renders all objects in the debug renderer's buffer and removes all objects that have exhausted their requested time.
+
+
+
Parameters
+
+
+
+
vp
+
View-Projection matrix that the objects should be drawn with.
+
+
+
deltaT
+
Time that has passed since the last call to flush.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Converts the material indices of this grid from one palette to another.
+
+
+
Parameters
+
+
+
+
src
+
Original palette.
+
+
+
dst
+
New palette.
+
+
+
minSimilarity
+
Minimum similarity between two materials to consider them the same.
+
+
+
+
+
Returns
+
Whether the conversion was successful.
+
+
+
+
For each material, it will search for another material in the second palette which is similar enough to the original one. The conversion fails if no matching index is found.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Minimum similarity for two materials to be merged.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Interface used to wrap low-level rendering APIs such as OpenGL.
+
+
Using this interface, the engine never directly interacts with OpenGL or any other low-level rendering API. This allows use to use different rendering APIs without having to change the engine code, which is useful for porting the engine to different platforms.
Defines a barrier ordering memory transactions. Unsupported on some platforms.
+
+
+
Parameters
+
+
+
+
barriers
+
Barriers to apply.
+
+
+
+
This ensure that all memory transactions before the barrier are completed before the barrier is executed.
+
+
+
+ void cubos::core::gl::RenderDevice::setViewport(int x,
+ int y,
+ int w,
+ int h) pure virtual
+
+
Sets the current viewport.
+
+
+
Parameters
+
+
+
+
x
+
Bottom left viewport corner X coordinate.
+
+
+
y
+
Bottom left viewport corner Y coordinate.
+
+
+
w
+
Viewport width.
+
+
+
h
+
Viewport height.
+
+
+
+
+
+
+ void cubos::core::gl::RenderDevice::setScissor(int x,
+ int y,
+ int w,
+ int h) pure virtual
+
+
Sets the current scissor rectangle.
+
+
+
Parameters
+
+
+
+
x
+
Bottom left scissor rectangle corner X coordinate.
+
+
+
y
+
Bottom left scissor rectangle corner Y coordinate.
+
+
+
w
+
Scissor rectangle width.
+
+
+
h
+
Scissor rectangle height.
+
+
+
+
+
+
+ int cubos::core::gl::RenderDevice::getProperty(Property prop) pure virtual
+
+
Gets a runtime property of the render device.
+
+
+
Parameters
+
+
+
+
prop
+
Property name.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Unmaps the constant buffer, updating it with data written to the mapped region.
+
+
+
+
Function documentation
+
+
+ void* cubos::core::gl::impl::ConstantBuffer::map() pure virtual
+
+
Maps the constant buffer to a region in memory. Must be matched with a call to unmap().
+
+
+
+
Returns
+
Pointer to the memory region.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Updates a cube map's face with new data, which must have the same format used when the cube map was created.
+
+
+
Parameters
+
+
+
+
x
+
Destination X coordinate.
+
+
+
y
+
Destination Y coordinate.
+
+
+
width
+
Width of the section which will be updated.
+
+
+
height
+
Height of the section which will be updated.
+
+
+
data
+
Pointer to the new data.
+
+
+
face
+
Face to update.
+
+
+
level
+
Mip level to update.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Updates a cube map's face with new data, which must have the same format used when the cube map was created.
+
+
+
Parameters
+
+
+
+
x
+
Destination X coordinate.
+
+
+
y
+
Destination Y coordinate.
+
+
+
i
+
Index of the destination texture within the array.
+
+
+
width
+
Width of the section which will be updated.
+
+
+
height
+
Height of the section which will be updated.
+
+
+
data
+
Pointer to the new data.
+
+
+
face
+
Face to update.
+
+
+
level
+
Mip level to update.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Unmaps the index buffer, updating it with data written to the mapped region.
+
+
+
+
Function documentation
+
+
+ void* cubos::core::gl::impl::IndexBuffer::map() pure virtual
+
+
Maps the index buffer to a region in memory. Must be matched with a call to unmap().
+
+
+
+
Returns
+
Pointer to the memory region.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Gets the constant buffer structure of this binding point.
+
+
+
+
Returns
+
Whether the query was successful.
+
+
+
+
If this binding point doesn't support a constant buffer, an error is logged.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Binding point, or nullptr if no binding point is found.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ Stage cubos::core::gl::impl::ShaderStage::getType() pure virtual
+
+
Gets the shader stage type.
+
+
+
+
Returns
+
Shader stage type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Updates the texture with new data, which must have the same format used when the texture was created.
+
+
+
Parameters
+
+
+
+
x
+
Destination X coordinate.
+
+
+
width
+
Width of the section which will be updated.
+
+
+
data
+
Pointer to the new data.
+
+
+
level
+
Mip level to update.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Updates the texture with new data, which must have the same format used when the texture was created.
+
+
+
Parameters
+
+
+
+
x
+
Destination X coordinate.
+
+
+
y
+
Destination Y coordinate.
+
+
+
width
+
Width of the section which will be updated.
+
+
+
height
+
Height of the section which will be updated.
+
+
+
data
+
Pointer to the new data.
+
+
+
level
+
Mip level to update.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ void cubos::core::gl::impl::Texture2DArray::update(std::size_t x,
+ std::size_t y,
+ std::size_t i,
+ std::size_t width,
+ std::size_t height,
+ const void* data,
+ std::size_t level = 0) pure virtual
+
+
Updates the texture with new data, which must have the same format used when the texture was created.
+
+
+
Parameters
+
+
+
+
x
+
Destination X coordinate.
+
+
+
y
+
Destination Y coordinate.
+
+
+
i
+
Index of the destination texture within the array.
+
+
+
width
+
Width of the section which will be updated.
+
+
+
height
+
Height of the section which will be updated.
+
+
+
data
+
Pointer to the new data.
+
+
+
level
+
Mip level to update.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Updates the texture with new data, which must have the same format used when the texture was created.
+
+
+
Parameters
+
+
+
+
x
+
Destination X coordinate.
+
+
+
y
+
Destination Y coordinate.
+
+
+
z
+
Destination Z coordinate.
+
+
+
width
+
Width of the section which will be updated.
+
+
+
height
+
Height of the section which will be updated.
+
+
+
depth
+
Depth of the section which will be updated.
+
+
+
data
+
Pointer to the new data.
+
+
+
level
+
Mip level to update.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Unmaps the vertex buffer, updating it with data written to the mapped region.
+
+
+
+
Function documentation
+
+
+ void* cubos::core::gl::impl::VertexBuffer::map() pure virtual
+
+
Maps the vertex buffer to a region in memory. Must be matched with a call to unmap().
+
+
+
+
Returns
+
Pointer to the memory region.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Checks if a key is currently pressed with (at least) the given modifiers.
+
+
+
Parameters
+
+
+
+
key
+
Key to check.
+
+
+
modifiers
+
Modifiers to check.
+
+
+
+
+
Returns
+
Whether the key and modifiers (or a superset of) are currently pressed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Constructs a copy of another buffer stream. If the given buffer stream owns its buffer, the copy will also create its own buffer. Otherwise, it will share the buffer with the original.
Constructs a copy of another buffer stream. If the given buffer stream owns its buffer, the copy will also create its own buffer. Otherwise, it will share the buffer with the original.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Why do we have our own streams? Well, the standard library streams are hard to use and extend, and very template heavy. Using our own streams allows us to abstract away more easily where the data is coming from, or going to, allowing us, for example, to embed files into the executable and not have to worry about the code that reads them.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ auto cubos::core::memory::TypeMap<V>::begin() const
+
+
Gets an iterator to the beginning of the map.
+
+
+
+
Returns
+
Iterator to the beginning of the map.
+
+
+
+
+
+
+
+ template<typename V>
+
+ auto cubos::core::memory::TypeMap<V>::end() const
+
+
Gets an iterator to the end of the map.
+
+
+
+
Returns
+
Iterator to the end of the map.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Handle to an asset of any type. May either be weak or strong. Weak handles do not guarantee the asset is loaded, while strong handles do.
+
+
Assets are identified by their UUID. This is a unique 128-bit number which is assigned to each asset when it is imported or created. Default constructed handles are null handles, which are not associated with any asset.
Serialization:
can be serialized or deserialized without context, i.e. the UUID is stored directly.
when deserialized, the handle is always a weak handle.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Bridges are the objects responsible for loading and saving assets from/to disk. They form the bridge between the asset manager and the virtual file system.
+
+
Not all bridges need to implement the save method. You could have an asset type which could be loaded but not saved, for example.
Bridges should take into account that the asset manager calls them from a different thread than the one that created them.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Loads all metadata from the virtual filesystem, in the given path. If the path points to a directory, it will be recursively searched for metadata files.
Loads all metadata from the virtual filesystem, in the given path. If the path points to a directory, it will be recursively searched for metadata files.
Loads the asset with the given handle, upgrading the handle to a strong one.
+
+
+
Parameters
+
+
+
+
handle
+
Handle to load the asset for.
+
+
+
+
+
Returns
+
Strong handle to the asset, or a null handle if an error occurred.
+
+
+
+
This method doesn't block, thus the asset may have not yet been loaded when it returns. If the manager is unable to find the asset or a bridge for loading it, a null handle is returned. If an error occurs while loading the asset, it will only fail in read() or be visible through status().
If an asset with the same handle already exists, it will be replaced. If no metadata is associated with the handle, an empty one will be created. This increases the asset's version.
If the asset is not loaded, its type is deduced from its bridge. If there's also no associated bridge, aborts. If the asset does not exist, aborts.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Interface which abstracts different rendering methods.
+
+
This abstraction allows us to, for example, switch between a raytracing and a deferred rendering method as we need to, without changing the API. This is useful since not all computers support realtime raytracing.
Renderer implementations should implement this function to draw the frame. When post processing is enabled, the target framebuffer will be the internal texture which will be used for post processing.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Bridge for loading and saving assets which are serialized to and from a binary file.
+
+
+
Template parameters
+
+
+
+
T
+
Type of asset to load and save. Must be default constructible.
+
+
+
+
+
This bridge automatically serializes and deserializes assets of type T to from a binary file. Thus, T must be serializable and deserializable. No additional context is given to the serializer or deserializer.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Represents the engine itself, and exposes the interface with which the game developer interacts with. Ties up all the different parts of the engine together.
Adds a new plugin to the engine. If the plugin had already been added, nothing happens. A plugin is just a function that operates on the Cubos object, further configuring it. It is useful for separating the code into modules.
Adds a new plugin to the engine. If the plugin had already been added, nothing happens. A plugin is just a function that operates on the Cubos object, further configuring it. It is useful for separating the code into modules.
Initially, dispatches all of the startup systems. Then, while ShouldQuit is false, dispatches all other systems.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Renderer implementations should implement this function to draw the frame. When post processing is enabled, the target framebuffer will be the internal texture which will be used for post processing.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Abstract bridge type defined to reduce boilerplate code in bridge implementations which open a single file to load and save assets.
+
+
This bridge should be used as a base class for bridges which load and save assets. Child classes must implement the loadFromFile() and saveToFile() methods, which are called with a file stream to load and save the asset from and to, respectively.
Bridges are the objects responsible for loading and saving assets from/to disk. They form the bridge between the asset manager and the virtual file system.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Bridge for loading and saving assets which are serialized to and from a JSON file.
+
+
+
Template parameters
+
+
+
+
T
+
Type of asset to load and save. Must be default constructible.
+
+
+
+
+
This bridge automatically serializes and deserializes assets of type T to and from a JSON file. Thus, T must be serializable and deserializable. No additional context is given to the serializer or deserializer.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
The inputs argument is mutable to allow passes to their own inputs for future passes. This argument is used, for example, to pass the extra outputs of the deferred renderer to the post processing passes which might need them.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
The inputs argument is mutable to allow passes to their own inputs for future passes. This argument is used, for example, to pass the extra outputs of the deferred renderer to the post processing passes which might need them.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Responsible for managing the post processing passes.
+
+
This class is renderer agnostic. It can be used with any renderer implementation. Passes are executed in the order they are added, and take as input the output of the previous pass and the outputs of the renderer.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
All passes must have the same constructor arguments: the render device and the size of the window. They should never be constructed directly, and instead should be created using the PostProcessingManager.
The inputs argument is mutable to allow passes to their own inputs for future passes. This argument is used, for example, to pass the extra outputs of the deferred renderer to the post processing passes which might need them.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
This scene will import the subscene with ID 6f42ae5a-59d1-5df3-8720-83b8df6dd536, and prefix all of its entities with foo.. The entity foo.bar will override the entity bar from the imported scene, while the entity baz will be added to the scene.
Bridges are the objects responsible for loading and saving assets from/to disk. They form the bridge between the asset manager and the virtual file system.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Adds a condition to the current system. If this condition returns false, the system will not be executed. For a system to run, all conditions must return true.
Adds a condition to the current system. If this condition returns false, the system will not be executed. For a system to run, all conditions must return true.
+
+
+
Template parameters
+
+
+
+
F
+
Condition system type.
+
+
+
+
Parameters
+
+
+
+
func
+
Condition system.
+
+
+
+
+
Returns
+
Reference to this object, for chaining.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Adds a condition to the current tag. If this condition returns false, systems with this tag will not be executed. For the tagged systems to run, all conditions must return true.
Adds a condition to the current tag. If this condition returns false, systems with this tag will not be executed. For the tagged systems to run, all conditions must return true.
+
+
+
Parameters
+
+
+
+
func
+
Condition function.
+
+
+
+
+
Returns
+
Reference to this object, for chaining.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ auto getComponentName(std::type_index type) -> std::optional<std::string_view>
+
+
Gets the registered name of a component type.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Commits should be concise and small, such that they are easy to review. Avoid at all costs including non-related changes in a commit - use git add -p or something similar to force yourself to review the changes you are commiting, and to avoid accidentally commiting unrelated changes.
Commits should follow Conventional Commits and be written in imperative mood. We use the scopes core, engine and tools. When making a commit which affects more than one of these scopes, you can ommit the scope.
If your description is too long, you can add a body to the commit message. The body should be separated from the description by a blank line.
Examples of good commit messages:
feat(core): add CUBOS_FAIL, CUBOS_UNREACHABLE and CUBOS_DEBUG_ASSERT
+test(core): move filesystem tests to data/fs
+fix(core): fix segfault when popping a sub context
+feat(engine): implement system for sweeping the markers
+docs(engine): add comments to colliders
+chore: replace GoogleTest submodule with doctest
Examples of bad commit messages:
fix: fix bug
+make it work
+feat(core): Add CUBOS_FAIL
+docs(engine): added comments to colliders
Pull requests should be concise and small, and if needed, split into multiple smaller PRs so that they are easier to review. If your PR is still not finished, mark it as a draft. When working on new features, draft PRs should be created so that other contributors can have an idea of what is being worked on.
Any features added in a PR should be covered by tests and documentation, including new examples demonstrating the feature.
We use Doxygen for documentation, which means that the documentation is mostly written in the code itself. When adding new files, classes, functions, etc, make sure to at least add a triple slash comment (///) with a @brief section describing what it does, otherwise Doxygen will omit it from the documentation.
Make sure to document all function parameters, template parameters and return values. Take a look at other files to get a grasp of the documentation style we use.
When changing the code, the documentation should be updated accordingly.
Engine plugins should document which components and resources they add, which tags and settings are used, and how to use them. Take a look at the documentation of other plugins such as the renderer plugin to get an idea of how it should look like.
Every type or function that is part of the public API of a plugin should be added to its corresponding group in the Doxygen documentation, using the @ingroup tag.
We use camelCase for functions, methods, local variables and fields. Private fields are prefixed with m (e.g. mMyField). PascalCase is used for class names and constants. UPPER_CASE is used for macros. snake_case is used for namespaces, folders and files.
Code is formatted using clang format. Although we have an action that runs clang format on every PR, it is recommended that you run it locally before commiting your changes, to make it easier for the reviewers to read your code.
We also check the code with clang tidy, which is a static analysis tool which picks up many common mistakes and code smell. This runs on every commit you push to your branch.
Avoid using macros whenever possible - use constexpr variables or functions instead. If you do need to use a macro to make an implementation more readable, restrict the macro to the source file where it is used. Defining macros in header files is heavily discouraged.
Avoid using namespace in header files. In source files, prefer using foo::bar::X over using namespace foo::bar. If your code is under the namespace foo::bar, you can use using namespace foo::bar in the source files, to make the code more readable.
When closing a namespace the namespace name should be added as a comment. E.g.:
namespacefoo
+{
+...
+}// namespace foo
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
A simple post processing pass that copies the input texture to the output.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Represents a file in the virtual file system of the engine.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Represents a simplex shape, which may either be empty, a point, a line, a triangle or a tetrahedron.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Sample which showcases how the EmbeddedArchive class can be used.
+
The assets directory on the same directory as this file was embedded into embed.cpp using the command quadrados embed -r assets > embed.cpp. Since no further options were specified, quadrados registered the data with the name of the embedded file - assets.
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Represents the engine itself, and exposes the interface with which the game developer interacts with. Ties up all the different parts of the engine together.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Singleton with static methods used to draw primitive objects on screen for debugging purposes.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Renderer implementation which uses deferred rendering.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Functions for showing and editing serializable objects in the UI.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Used to add systems and relations between them and then dispatch them all at once.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Adds a ImGui window which allows the user to edit the entities and components in a ecs::World.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Converts a value from local endianness to big endianness.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Abstract bridge type defined to reduce boilerplate code in bridge implementations which open a single file to load and save assets.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Component which adds a capsule collider to an entity.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Component which adds a plane collider to an entity.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Component which adds a simplex collider to an entity.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Component which makes an entity behave like a point light.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
A sample demonstrating how to create a custom asset bridge.
+
+
This sample demonstrates how we can create a custom asset bridge to load assets of a custom type. In this case, a bridge is created to load text files (.txt) as strings. The bridge is registered with the asset manager, and then a text file is loaded and printed to the console.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
A sample demonstrating how to save and load JSON assets.
+
+
This sample demonstrates how we can use the JSONBridge to easily save and load serializable assets as JSON files. If we had a serializable asset and we wanted to store it as binary, we could simply replace the JSONBridge with a BinaryBridge and the sample would work the same way.
In this sample, we will be creating an asset of type MyAsset, saving it to a JSON file, and then loading it back from the file.
A simple serializable type which we will be saving and loading.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Used to iterate over all entities in a manager with a certain component mask.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Resource which stores the renderer's ambient light and sky colors.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
System argument which allows the system to send events of type T to other systems.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
CUBOS_INFO("Serializable type: {}",Debug(glm::vec3(0.0F,1.0F,2.0F)));
+CUBOS_INFO("Again, but with type information: {:t}",Debug(glm::vec3(0.0F,1.0F,2.0F)));
+CUBOS_INFO("Since unordered maps are serializable, we can do this: {}",
+Debug((std::unordered_map<int,constchar*>{{1,"one"},{2,"two"}})));
+}
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
The following examples are not yet documented, but may still be useful to learn some of the features:
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Contains examples of specific features of the libraries.
+
If you are just starting out, you should probably start by the engine examples. These cover the actual user-facing features, and are a good place to get a feel for how using the engine looks like, while the core examples are more directed at engine developers trying to understand how specific low-level features are used.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Entity Component System (ECS) is a software architectural pattern mostly used in video game development for the representation of game world objects. An ECS comprises entities composed from components of data, with systems which operate on entities' components.
ECS follows the principle of composition over inheritance, meaning that every entity is defined not by a type hierarchy, but by the components that are associated with it. Systems act globally over all entities which have the required components.
The ECS thus is a vital part of the engine, since all of the rest is structured around it in some way. This sets the engine apart from other engines which follow a more traditional model, like Unity, Unreal and Godot.
ECS is a powerful pattern which has been becoming more popular over the years, and even Unity has started integrating it into its engine. The main advantages are flexibility and performance: it avoids a lot of the problems that come with traditional object-oriented programming, and regarding performance, it excels in situations where the number of entities is high, since it makes use of cache locality. Its also easier to parallelize the systems, since they have clearly defined dependencies.
World - the main object that holds all of the ECS state.
Entities - represent objects in the game world (e.g. a car, a player, a tree).
Components - data associated with an entity (e.g. Position, Rotation).
Resources - singleton-like objects which are stored per world and which do not belong to a specific entity (e.g. DeltaTime, Input).
Systems - functions which operate on resources and entities' components. This is where the logic is implemented.
Dispatcher - decides when each system is called and knows which systems are independent from each other so they can be called at the same time (parallel computing).
On the engine side, the Dispatcher is not exposed. Instead, the Cubos class is used to add systems and specify when they should be called.
One important thing to note is that in an ECS the data is completely decoupled from the logic. What this means is that entities and components do not and should not possess any functionality other than storing data. All of the logic is relegated to the systems.
So, where does the update logic belong? We put it in a system. Systems are functions whose arguments are of certain types, which you can read more about in the ECS module page.
To access a resource, we use the Read and Write arguments. In this case, we won't be modifying the delta time, so we will use Read<DeltaTime>. To access entities and their components, we use the Query argument. In this case we we want to access all entities with both positions and velocities, and modify their positions, so we will use Query<Write<Position>, Read<Velocity>>.
Before components and resources are used in a World, they must be registered on it. This should be done once, at the start of the program. For example, using the CUBOS.main class, for the previous example we would write:
If necessary, you can access the world in a system through the arguments Read<World> or Write<World>. However, this is not recommended, since it becomes impossible for the dispatcher to know what the system is accessing, and thus it cannot parallelize it.
Instead, you should use the Commands argument. Through it you can queue operations to be executed at a later time, when its safe to do so.
Imagine we want to have spawners which create new entities on their position and then destroy themselves. We can implement this with a system like this:
This system iterates over all entities with Spawner and Position components. It creates new entities on their positions with a velocity of (0, 0, 1), and then destroys the spawner entity. The entities are only actually created and destroyed later on, when the commands are executed.
A common pattern in game engines is to have a way to create entities in bundles, such as Unity's prefabs. In CUBOS. we call these blueprints. A blueprint is a set of entities and their components, which can be spawned into the world as many times as needed.
For example, if we wanted to create a blueprint for a motorbike with two wheels:
// You can just spawn the bike as is.
+commands.spawn(motorbike);
+
+// Lets say we want to spawn the bike in a different position.
+// You can override components of the spawned entities.
+commands
+.spawn(motorbike)
+.add("body",Position{...});
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Plugins are a feature of the cubos::engine::Cubos class. This class is the main thing you'll be interacting with when developing a game with CUBOS.. It is used to configure the engine and run the game loop. Through it, you can register new components, resources and configure systems to be run on specific conditions.
An application which just prints "Hello World!" and which does absolutely nothing else - not even open a window - would look like this:
If you had to add every system, component and resource to your game's main source file, it would quickly become a mess. Plugins are just functions which receive a reference to the Cubos class. Nothing more.
The idiomatic way to use plugins is through the Cubos::addPlugin method. It receives a plugin function, and executes it only if it hasn't been executed before. This property is useful for solving dependency issues between plugins. For example, if B and C adds A and D adds B and C, you would be adding A twice.
If we were to put the hello world functionality on a plugin, the previous example would look like this:
The engine is basically a big bundle of plugins which add all of kinds of functionality. You can find an exhaustive list of the plugins provided by the engine and their documentation on the engine module page. Check out the engine examples to see how they are used in practice.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
The need for this tool arose from the fact that CUBOS. works with a single palette of voxel materials, and voxel objects refer to specific materials by their index in this palette. For example, if we had a single voxel red object, the red color wouldn't be specified in the voxel object. Instead, this object would specify that its material is 1, and the palette would specify that the material 1 is red.
The issue is, voxel formats like .qb and .vox are not designed to store only the indices of materials, but the whole material definition, per voxel. This conflicts with the way CUBOS. works, so we need to convert these formats into the internal format used by CUBOS.. This is where quadrados convert comes in. It takes a .qb voxel file and splits it into a palette (.pal), and one or more voxel grids (.grd).
This use case is most common when importing the first .qb file for a new project. There is no palette file yet, so we need to create one. Lets say the model we want to convert is a car.qb, which contains a single voxel object.
$quadradosconvertcar.qb-pmain.pal-gcar.grd-w
First, we specify the .qb file to convert. Then, we specify the name of the palette we will be outputting. We also need to specify the output file for the voxel grid. Finally, we pass the -w flag which allows us to write to the palette file (which is necessary since there is none at the moment).
Lets say we now want to import a street.qb model which contains two voxel grids: the first one is a road and the second one is a tree. Since we already have a palette, we want to add any new materials to it.
Once again, we first specify the .qb file to convert. Then, we specify the name of the palette we will be using, which is the same as the one we created in the previous example. This time, we have two grids in the .qb file, so we need to specify the output files for both. This is done by adding an index in front of -g (e.g. -g0 for the first grid, -g1 for the second). Finally, we once again pass the -w flag which allows the palette file to be updated.
What if we want to add another car model, but without adding materials to the palette? To do this, we will need to ommit the -w flag. This way, the palette will be read, and the most similar materials found will be used. By default, this will only succeed if the materials match exactly.
One work around is lowering the threshold for material matching. If you want to allow for slightly different materials to be considered as the same, you can pass the -s <SIMILARITY> option. This value is a number from 0 to 1, where 0 is completely different and 1 is completely the same. It represents the minimum similarity between two materials to consider them the same (default is 1).
So, if the materials which aren't matching are very similar, you could add, for example, -s 0.9 to the previous command. This way, the material chosen from the palette will have a similarity of at least 0.9 with the material in the original model.
You may want to check the contents of a .qb file before converting it. One easy way to do this is to use the -v (verbose) flag. This can be added to any of the previous commands to get extra information about what is going on.
It can also be used without any other options, in which case the program will just print the contents of the .qb file. For example:
This tells us that the car.qb model contains exactly one voxel grid, that its position within the model is (-7, -5, -16), that its size is 15x11x32, and that it uses 10 different materials.
The quadrados embed tool is used to embed files directly into an executable for use with the cubos::core::data::EmbeddedArchive. This is useful for example when you want to ship a game with a set of assets, but don't want to have to distribute them as separate files. This way, you are able to ship a single executable file.
This tool takes a file and generates a C++ source file which registers data to be used with cubos::core::data::EmbeddedArchive, outputting the code to the standard output. This source file can then be compiled and linked with your executable.
If no name is specified, the name of the file will be used. For example, if you run quadrados embed logo.png > logo.cpp, the name of the registered data will be logo.png.
For a type to be usable as a component, it must satisfy the following requirements:
it must be (de)serializable, taking optionally some context necessary (such as the mapping between Entitys and their IDs, or a function to read or write handles).
it must define a storage type, which will then be used to store the component's data in the World.
it must call the CUBOS_REGISTER_COMPONENT macro, passing the ID of the component type, which associates the type with a unique ID.
This means that, before quadrados generate, component definitions looked like:
structMyComponent
+{
+intx;
+floaty;
+std::stringz;
+};
+
+// The serialization functions must be defined in this namespace.
+namespacecubos::core::data
+{
+inlinestaticvoidserialize(Serializer&s,constMyComponent&c,constchar*name)
+{
+s.beginObject(name);
+s.write(c.x);
+s.write(c.y);
+s.write(c.z);
+s.endObject();
+}
+
+inlinestaticvoiddeserialize(Deserializer&d,MyComponent&c)
+{
+d.beginObject();
+d.read(c.x);
+d.read(c.y);
+d.read(c.z);
+d.endObject();
+}
+}
+
+// The storage type must be defined in this namespace.
+namespacecubos::core::ecs
+{
+template<>
+structComponentStorage<MyComponent>
+{
+usingType=VecStorage<MyComponent>;
+};
+}
+
+CUBOS_REGISTER_COMPONENT(MyComponent,"my_component");
This amount of boilerplate is not acceptable, specially for user-facing code. The quadrados generate command makes use of a recent C++ feature called attributes. Attributes are usually used to provide hints to the compiler. However, on our case, we're using them to mark types as components.
With quadrados generate, the same component definition can be written as:
// Must be included in the file where the component is defined.
+#include<components/base.hpp>
+
+struct[[cubos::component("my_component",VecStorage)]]MyComponent
+{
+intx;
+floaty;
+std::stringz;
+};
This tool then searches for all types marked with the cubos::component and generates a header file for each one. In this case, a header file would be generated which could be included with #include <components/my_component.hpp>.
When using the component, the user must include the generated header file, and not the original one. Otherwise, the compiler won't see the generated code.
If the component is identified with a slash, as, for example, game/my_component, the generated header file will be placed in the components/game directory. This is useful for organizing components into different modules. For example, cubos-engine names all its components with the cubos/ directory.
This tool can be configured to run automatically when building the project. To do this, you can include the QuadradosGenerate module in your CMakeLists.txt and call the quadrados_generate function with your target and the directory where the base component headers are located.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
This is a brief introduction to the CUBOS. engine and its features. Before diving into the documentation of each class and function, it's recommended to read through this guide.
The CUBOS. engine is divided into two libraries: Core and Engine. Each library has its own namespace, which corresponds to a sub-folder in the include path.
Core provides platform abstraction, containers, utilities, and the ECS module. Engine builds on top of Core and provides higher-level features such as rendering and collisions.
The core library is divided into modules, each of which covers a specific area of functionality. For example, graphics-related functionality is on the cubos::core::gl namespace, under the include path cubos/core/gl.
The engine library is divided into plugins, each of which extends the engine's functionality in some way. You'll learn more about plugins below. For each plugin, there is a corresponding directory in the include path. Categories of plugins are also divided into sub-folders, with their own namespaces.
Other than the core and engine libraries, the project also contains Quadrados and Tesseratos. Quadrados is a CLI tool which contains utilities used during game development. Tesseratos is our in-house editor, which is still in its early stages of development.
The following guides explain basic concepts of the engine. Its recommend to read through these first to understand the overall principles and only then dive into the documentation of each class and function.
The engine is still in its early stages of development, and thus we're missing a lot of features. For example, we don't have physics yet, and the editor tools are very barebones - you can't even load a scene from a file yet. There's no scripting language, thus you will have to write all your game logic in C++.
Making a game with the engine is still very painful. Our goal is to make CUBOS. usable for game jams by people who are not on the team. This means a lot of work, but we're confident we can get there.
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Wrapper around an implementation-specific file stream which keeps the file alive and does some sanity checks.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Singleton which represents the virtual file system of the engine.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Dependencies marked as Essential are required to compile the engine. If they are installed separately, you must first install them manually. If they're not, it means they come as submodules and you can install them with the engine by cloning the whole repository with the --recursive flag. If you've already cloned the repository, you can install them by running the following command from the root directory of the repository:
If you chose to install some dependencies separately, you must pass the corresponding -D flag to CMake. For example, if you installed GLFW, GLM and CMake separately you would pass the following flags to CMake:
Both the core and the engine contain examples which you can run to check if things are running correctly. To build them, you must enable the BUILD_CORE_SAMPLES and/or BUILD_ENGINE_SAMPLES options.
We recommend you start by reading the feature guide, which introduces you to important concepts and features of the engine, such as what is an ECS and how it is used in CUBOS..
The examples page is also a good place to go if you want to see how specific parts of the engine are used in practice.
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Bridges are the objects responsible for loading and saving assets from/to disk. They form the bridge between the asset manager and the virtual file system.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Archive implementation which reads and writes from/into the OS file system using the standard library.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
This module is arguably the heart of the engine, as it provides a means to organize and manage the data and logic of both the engine and games built with it. It is, as of now, a bit of a mess. Most of the exposed types are internal to the documentation, and thus it can get hard to navigate (TODO #377).
System argument which provides read access to the resource T if it exists, or query argument which provides read access to the component T if it exists.
System argument which provides write access to the resource T if it exists, or query argument which provides write access to the component T if it exists.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Represents a simplex shape, which may either be empty, a point, a line, a triangle or a tetrahedron.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
If set, memory accesses using shader image load, store, and atomic built-in functions issued after the barrier will reflect the data written by shaders prior to the barrier.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Converts a value from local endianness to big endianness.
+
+
+
Template parameters
+
+
+
+
T
+
Value type.
+
+
+
+
Parameters
+
+
+
+
value
+
Value to convert.
+
+
+
+
+
Returns
+
Converted value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Shows a packaged object's properties in the UI, allowing the user to edit the object. Should be called inside a ImGui::BeginTable(3) and ImGui::EndTable() block.
Shows a packaged object's properties in the UI, allowing the user to edit the object. Should be called inside a ImGui::BeginTable(3) and ImGui::EndTable() block.
+
+
+
Parameters
+
+
+
+
pkg
+
Packaged object to edit.
+
+
+
name
+
Name of the object.
+
+
+
+
+
Returns
+
True if the object was modified, false otherwise.
+
+
+
+
The first column displays the name of the package, the second column displays the value of the package and the third column is used for remove buttons in the case of arrays and dictionaries.
Shows a serializable object's properties in the UI. Should be called inside a ImGui::BeginTable(3) and ImGui::EndTable() block.
+
+
+
Template parameters
+
+
+
+
T
+
Type of the serializable object.
+
+
+
+
Parameters
+
+
+
+
object
+
Object to edit.
+
+
+
name
+
Name of the object.
+
+
+
+
+
Returns
+
True if the object was edited, false otherwise.
+
+
+
+
Internally packages the object, calls editPackage() and then unpackages the object, if it was modified.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
The core library contains loose utilities and functionality on which the rest of the CUBOS. libraries and applications are built on. Lives in the cubos::core namespace.
This library can be further divided into modules, which are documented in their respective module pages. Each of these modules has its own namespace and directory in the source tree. For example, the ECS module lives in the cubos::core::ecs namespace.
In debug builds asserts that a condition is true, aborting the program if it is not.
+
+
+
Parameters
+
+
+
+
cond
+
Condition to assert.
+
+
+
...
+
Optional format string and arguments.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
The engine library is built on top of the core library and contains code exclusive to game execution. This includes the main loop, asset management, rendering and physics. It is built around the Cubos class and designed to be as modular as possible. Each sub-module corresponds to a plugin, or a set of plugins.
The library re-exports some of the core library functionality for convenience such that the user doesn't have to use the cubos::core namespace directly very often.
Represents the engine itself, and exposes the interface with which the game developer interacts with. Ties up all the different parts of the engine together.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
This plugins exists to reduce coupling between plugins. For example, a plugin which allows selecting entities through a ImGui window only needs to depend on this plugin, instead of having to know about all the plugins which care about it. The same applies in the other direction.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
This plugin needs the Arguments resource, and thus, the constructor Cubos::Cubos(int, char**) must be used to construct the application. Any previous setting will be overwritten if its set on the arguments.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
The settings file must be a JSON file. If the file does not exist or can't be parsed, the plugin aborts. Any previously set setting will be overwritten if its set on the file.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Shows all of the entities in the world through a ImGui window, and allows selecting them.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Adds transform components which assign positions, rotations and scaling to entities.
+
+
This plugin operates on entities with a LocalToWorld component and any combination of the Position, Rotation and Scale components. For example, if you have an entity which doesn't need rotation, but has a position and a scale, you do not need to add the Rotation component, and its transform will still be updated.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Provides safe read-write access to an object using a lock.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Ends the current ImGui frame, and renders the ImGui draw data to the target framebuffer, or the default framebuffer if target is null.
+
+ auto handleEvent(const io::WindowEvent& event) -> bool
+
+
Passes a window event to ImGui.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
CUBOS. aims to be a simple, but powerful game engine for PC, whereeverything is made out of voxels.
It is open source and free to use for any purpose. Written in C++ and with data-oriented design in mind, its goal is to be both performant and highly flexible.
The best way to get started is to read the getting started guide, which will guide you through the process of downloading and building the engine, as well as where to go from there.
There is also a feature guide which gives you a high-level overview of the engine's design and features. If you're just looking for a quick overview, this is the place to go. You can also take a look at the modules page, which describes each of the engine's modules.
In the examples page you can find examples on how to use specific parts of the engine.
If you're looking to contribute to the project, make sure you read the contribution guidelines, which introduces you to the project's conventions and code style.
CUBOS. is developed by a small team at GameDev Técnico, a student group at Instituto Superior Técnico who make games. Our goal is to build a game engine from the ground up and have fun doing it.
If you're a student and interested in joining us, please fill out this form.
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Resource which stores the input bindings for multiple players.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Bridge for loading and saving assets which are serialized to and from a JSON file.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Component which stores the transformation matrix of an entity, from local to world space.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
In debug builds asserts that a condition is true, aborting the program if it is not.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Possible renderer outputs which can then be used as input for a post processing pass.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Storage implementation that uses an std::unordered_map.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Used as context to exclude parameters from being serialized.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ moduleToolsPlugins which add debug and development tooling to CUBOS.
+
+
module Asset explorerAllows viewing and selecting assets through a ImGui window.
+
module Entity inspectorAllows inspecting and modifying the components of the selected entity through a ImGui window.
+
module Entity selectorAdds a resource used to select an entity.
+
module Settings inspectorAllows inspecting the current setting values through a ImGui window.
+
module World inspectorShows all of the entities in the world through a ImGui window, and allows selecting them.
+
+
+
module TransformAdds transform components which assign positions, rotations and scaling to entities.
+
module VoxelsAdds grid and palette assets to CUBOS.
+
module WindowCreates and handles the lifecycle of a window.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
A utility object which is capable of storing the data of any trivially serializable object. One way to understand this class is to think of it as if it were a JSON representation of an object.
Overload the serialize function for types which define a serialize method.
+
+
+
Template parameters
+
+
+
+
T
+
The type of the object to deserialize.
+
+
+
+
Parameters
+
+
+
+
des
+
The deserializer to use.
+
+
+
obj
+
The object to deserialize.
+
+
+
+
Deserializes the given object using the given deserializer. Deserializable objects must implement a specialization (or overload) of this function. An implementation for types with a deserialize method is provided.
Overload the serialize function for types which define a serialize method.
+
+
+
Template parameters
+
+
+
+
T
+
The type of the object to deserialize.
+
+
+
+
Parameters
+
+
+
+
des
+
The deserializer to use.
+
+
+
obj
+
The object to deserialize.
+
+
+
+
Deserializes the given object using the given deserializer. Deserializable objects must implement a specialization (or overload) of this function. An implementation for types with a deserialize method is provided.
Overload for deserializing std::vector<bool>::reference. This is a special case because std::vector<bool> are stored as arrays of bits, and therefore need special handling.
Overload the serialize function for types which define a serialize method.
+
+
+
Template parameters
+
+
+
+
T
+
The type of the object to serialize.
+
+
+
+
Parameters
+
+
+
+
ser
+
The serializer to use.
+
+
+
obj
+
The object to serialize.
+
+
+
name
+
The name of the object.
+
+
+
+
Serializes the given object using the given serializer. Serializable objects must implement a specialization (or overload) of this function. An implementation for types with a serialize method is provided.
Overload the serialize function for types which define a serialize method.
+
+
+
Template parameters
+
+
+
+
T
+
The type of the object to serialize.
+
+
+
+
Parameters
+
+
+
+
ser
+
The serializer to use.
+
+
+
obj
+
The object to serialize.
+
+
+
name
+
The name of the object.
+
+
+
+
Serializes the given object using the given serializer. Serializable objects must implement a specialization (or overload) of this function. An implementation for types with a serialize method is provided.
Overload for serializing std::vector<bool>::const_reference. This is a special case because std::vector<bool> are stored as arrays of bits, and therefore need special handling.
Overload for serializing char arrays. Necessary because literal strings are treated as char arrays by the compiler. Without this overload, the linker would fail.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
System argument which provides read access to the resource T if it exists, or query argument which provides read access to the component T if it exists.
System argument which provides write access to the resource T if it exists, or query argument which provides write access to the component T if it exists.
Stores a bundle of entities and their respective components, which can be easily spawned into a world. This is in a way the 'Prefab' of CUBOS., but lower level.
+ auto getComponentName(std::type_index type) -> std::optional<std::string_view>
+
+
Gets the registered name of a component type.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Represents a simplex shape, which may either be empty, a point, a line, a triangle or a tetrahedron.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Creates the resources required to draw a quad that fills the screen and returns its VertexArray.
+
+
+
Parameters
+
+
+
+
renderDevice
+
RenderDevice to be used for generation of the quad.
+
+
+
pipeline
+
Pipeline to associate the quad's VertexArray with.
+
+
+
va out
+
Handle of the quad's VertexArray.
+
+
+
+
The quad provided by this function consists of two one sided triangles, with vertices containing the 2D position and UV coordinates. This function assumes the shader pipeline provided takes as input attributes a vec2 position and a vec2 uv.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ auto openWindow(const std::string& title = "CUBOS.",
+ const glm::ivec2& size = {800, 600}) -> Window
+
+
Opens a new window.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Converts a value from local endianness to big endianness.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Shows a packaged object's properties in the UI, allowing the user to edit the object. Should be called inside a ImGui::BeginTable(3) and ImGui::EndTable() block.
Shows a serializable object's properties in the UI. Should be called inside a ImGui::BeginTable(3) and ImGui::EndTable() block.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Bridges are the objects responsible for loading and saving assets from/to disk. They form the bridge between the asset manager and the virtual file system.
Represents the engine itself, and exposes the interface with which the game developer interacts with. Ties up all the different parts of the engine together.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Storage implementation that doesn't keep any data, made for zero-sized components.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Holds a palette of materials. Supports up to 65535 materials.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
This file is a bit scary, but it's not as bad as it looks. It's mostly template specializations to handle the different types of arguments a query can take.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
+ using RendererGrid = std::shared_ptr<impl::RendererGrid>
+
+
Handle to a grid uploaded to the GPU, to be used for rendering.
+
+ using Renderer = std::shared_ptr<BaseRenderer>
+
+
Resource which is an handle to a generic renderer.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Component which assigns a uniform scale to an entity.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.
Asset equivalent to ECS blueprints - a bundle of entities and their components.
+
+
+
+
+
+
+
+
+
+
+
+
+
Tab / T to search, Esc to close
+
…
+
+
+
+
+
+
Search for symbols, directories, files, pages or
+ modules. You can omit any prefix from the symbol or file path; adding a
+ : or / suffix lists all members of given symbol or
+ directory.
+
Use ↓
+ / ↑ to navigate through the list,
+ Enter to go.
+ Tab autocompletes common prefix, you can
+ copy a link to the result using ⌘
+ L while ⌘
+ M produces a Markdown link.