namespace
engineEngine module.
Classes
-
template<typename T>class Asset
- Handle to an asset of a specific type.
- class AnyAsset
- 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.
- class Assets
- Resource which manages all assets. Responsible for loading and unloading assets, storing them in memory, and providing access to them.
- class AssetBridge
- 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.
- class FileBridge
- Abstract bridge type defined to reduce boilerplate code in bridge implementations which open a single file to load and save assets.
-
template<typename T>class JSONBridge
- Bridge for loading and saving assets which are serialized to and from a JSON file.
- class AssetMeta
- Stores metadata about an asset - the data stored in .meta files. Each asset has a corresponding meta object, which contains load or import parameters.
- struct Collider
- Component which adds a collider to an entity.
- struct CollidingWith
- Relation which represents a collision.
- struct ContactPointData
- Contains info regarding a contact point of a @ContactManifold.
- struct ContactManifold
- Represents a contact interface between two bodies.
- class Raycast
- System argument which allows performing raycast queries among all entities with colliders.
- struct BoxCollisionShape
- Component which adds a box collision shape to an entity, used with a Collider component.
- struct CapsuleCollisionShape
- Component which adds a capsule collision shape to an entity, used with a Collider component.
- struct FixedDeltaTime
- Resource which holds the value of the fixed delta for the fixedStep plugin.
- class Gizmos
- Resource which queues commands for drawing gizmos, basic primitives useful for debugging and tools.
- struct GizmosTarget
- Component used to indicate that Gizmos should be rendered to a given RenderTarget.
- class ImageBridge
- Bridge which loads and saves Image assets.
- struct Image
- Asset containing raw Image data.
- class DataInspector
- Resource which allows the user to inspect or modify any reflectable value on the UI.
- struct ImGuiTarget
- Component used to indicate that the ImGui frame should be rendered to a given RenderTarget.
- class InputAction
- Stores the state of a single input action, such as "jump" or "attack".
- class InputAxis
- Stores the state of a single input axis, such as "move forward" or "move right".
- class InputBindings
- Stores the input bindings for a single player.
- class InputCombination
- Stores the keys, gamepad buttons, and mouse buttons of a single input combination.
- class Input
- Resource which stores the input bindings for multiple players.
- struct AccumulatedCorrection
- Component which holds the corrections accumulated from the constraints solving.
- struct AngularImpulse
- Component which holds angular impulses applied on a body.
- struct AngularVelocity
- Component which holds angular velocity of a body.
- struct CenterOfMass
- Component which defines the center of mass of a body.
- struct Force
- Component which holds forces applied on a particle.
- struct Impulse
- Component which holds impulses applied on a particle.
- struct Inertia
- Component which defines the inertia of a body.
- struct Mass
- Component which defines the mass of a particle.
- struct PhysicsMaterial
- Component which defines the friction and bounciness of a body.
- struct Torque
- Component which holds torque applied on a body.
- struct Velocity
- Component which holds velocity and forces applied on a particle.
- struct PhysicsBundle
- Component which encapsulates the creation all components required for physics.
- struct Damping
- Resource which holds the damping value for integration.
- struct Gravity
- Resource which holds the global value of gravity.
- struct Bloom
- Component which stores the Bloom state for a render target.
- struct Camera
- Generic component to hold the projection matrix of a specific camera (either perspective or orthogonal).
- struct DrawsTo
- Relation which indicates the 'from' entity is a camera that draws to the 'to' target.
- struct OrthographicCamera
- Component which defines parameters of a orthographic camera used to render the world.
- struct PerspectiveCamera
- Component which defines parameters of a perspective camera used to render the world.
- struct RenderTargetDefaults
- Component which replaces itself by the default render target components to an entity.
- struct DeferredShading
- Component which stores the Deferred Shading state for a render target.
- struct RenderDepth
- Component which stores the depth texture of a render target.
- struct GBuffer
- Component which stores the GBuffer textures of a render target.
- struct GBufferRasterizer
- Component which stores the GBuffer rasterizer state.
- struct HDR
- Component which stores the HDR texture of a render target.
- struct DirectionalLight
- Component which makes an entity behave like a directional light.
- struct RenderEnvironment
- Resource which stores the scene's ambient light and sky colors.
- struct PointLight
- Component which makes an entity behave like a point light.
- struct SpotLight
- Component which makes an entity emit a spot light in the direction of its local forward vector.
- struct RenderMesh
- Component used to draw meshes stored in the vertex pool.
- class RenderMeshPool
- Used to allocate render meshes, which can then be rendered using a single draw call.
- struct RenderMeshVertex
- Vertex data type stored in the RenderMeshPool's vertex buffer.
- struct RenderPicker
- Component which provides a texture to store entity/gizmo ids, for selection with a mouse.
- class ShaderBridge
- Bridge for loading shader assets.
- class Shader
- Contains a shader stage created from GLSL code.
- class ShadowAtlas
- Resource which stores the shadow map atlas, a large texture that holds the shadow maps for each shadow caster in a quadtree structure, reducing texture switching.
- struct ShadowAtlasRasterizer
- Resource which stores the ShadowAtlas rasterizer state.
- struct ShadowCaster
- Struct which contains the settings common to all shadow casters.
- struct DirectionalShadowCaster
- Component which enables shadow casting on a directional light.
- struct PointShadowCaster
- Component which enables shadow casting on a point light.
- struct SpotShadowCaster
- Component which enables shadow casting on a spot light.
- struct SplitScreen
- Component which enables splitscreen in a render target.
- struct SSAO
- Component which stores the SSAO textures for a render target.
- struct RenderTarget
- Component which represents a render target.
- struct ToneMapping
- Component which stores Tone Mapping configuration for a render target.
- struct RenderVoxelGrid
- Component used to draw voxel grids.
- struct LoadRenderVoxels
- Component used to indicate that a voxel grid should be sent to the GPU.
- struct RenderPalette
- Resource which identifies the currently active palette of the scene.
- class SceneBridge
- Bridge which loads and saves Scene assets.
- struct Scene
- Asset equivalent to ECS blueprints - a bundle of entities and their components.
- class Settings
- Stores settings as key-value pairs and provides methods to retrieve them.
- struct Selection
- Resource which identifies the current selection.
- class Toolbox
- Manages the visibility of each tool.
- struct ChildOf
- Tree relation which indicates the 'from' entity is a child of the 'to' entity.
- struct LocalToParent
- Component which stores the transformation matrix of an entity, from local to parent space.
- struct LocalToWorld
- Component which stores the transformation matrix of an entity, from local to world space.
- struct Position
- Component which assigns a position to an entity.
- struct Rotation
- Component which assigns a rotation to an entity.
- struct Scale
- Component which assigns a uniform scale to an entity.
- struct UICanvas
- Component which represents a target for UI rendering.
- class UIDrawList
- Holds a collections of draw commands and their data.
- struct UIElement
- Component which defines the space an element of the UI occupies as a rect.
- struct UIExpand
- Component which makes a UI canvas scale to maintain proportions, choosing the dimension which reduces the element sizes on screen.
- struct UIHorizontalStretch
- Component which makes a UI element fit horizontally to its parent.
- struct UIKeepPixelSize
- Component which makes a UI canvas scale to keep its elements at the same pixel size.
- struct UIMatchHeight
- Component which makes a UI canvas scale to maintain vertical proportions.
- struct UIMatchWidth
- Component which makes a UI canvas scale to maintain horizontal proportions.
- struct UINativeAspectRatio
- Component which makes a UI element keep the aspect ratio of its source.
- struct UIVerticalStretch
- Component which makes a UI element fit vertically to its parent.
- struct UIColorRect
- Component that draws a UI element as a solid color.
- struct UIImage
- Component used to draw images on the UI.
- struct FreeCameraController
- Component which moves the camera.
- class VoxelGrid
- Represents a voxel object using a 3D grid.
- class VoxelGridBridge
- Bridge which loads and saves Grid assets.
- struct VoxelMaterial
- Describes a voxel material.
- class VoxelModel
- Holds the data loaded from voxel model files, such as Qubicle models.
- class VoxelModelBridge
- Bridge which loads and saves VoxelModel assets.
- class VoxelPalette
- Holds a palette of materials. Supports up to 65535 materials.
- class VoxelPaletteBridge
- Bridge which loads and saves Palette assets.
Typedefs
-
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.
-
using Tag = core::
ecs:: Tag - Represents a tag to be used with the Cubos class.
-
using Plugin = core::
ecs:: Plugin - Function pointer type representing a plugin.
-
using Cubos = core::
ecs:: Cubos - 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.
-
using DeltaTime = core::
ecs:: DeltaTime - Resource which stores the time since the last iteration of the main loop started.
-
using ShouldQuit = core::
ecs:: ShouldQuit - Resource used as a flag to indicate whether the main loop should stop running.
-
using Arguments = core::
ecs:: Arguments - Resource which stores the command-line arguments.
-
template<typename... ComponentTypes>using Query = core::
ecs:: Query<ComponentTypes...> - System argument which holds the result of a query over all entities in world which match the given arguments.
-
using Entity = core::
ecs:: Entity - Identifies an entity.
-
using Commands = core::
ecs:: Commands - System argument used to write ECS commands and execute them at a later time.
-
template<typename T>using Opt = core::
memory:: Opt<T> - Wrapper for reference types to indicate that the given argument type is optional.
-
template<typename T, unsigned int M = DEFAULT_using EventReader = core::
FILTER_ MASK> ecs:: EventReader<T, M> - System arguments used to read events of type
T
. -
template<typename T>using EventWriter = core::
ecs:: EventWriter<T> - System argument which allows the system to send events of type
T
to other systems.
Functions
-
auto assetsPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto collisionsPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
- void defaultsPlugin(Cubos& cubos)
- Plugin entry function.
-
auto fixedStepPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto gizmosPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto imagePlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto imguiPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto inputPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto physicsPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto gravityPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto physicsSolverPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto bloomPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto cameraPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto cascadedShadowMapsPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto cascadedShadowMapsRasterizerPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
- void renderDefaultsPlugin(Cubos& cubos)
- Plugin entry function.
-
auto deferredShadingPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto renderDepthPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto gBufferPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto gBufferRasterizerPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto hdrPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto lightsPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto renderMeshPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto renderPickerPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto shaderPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto shadowAtlasPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto shadowAtlasRasterizerPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto shadowsPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto splitScreenPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto ssaoPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto renderTargetPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto toneMappingPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto renderVoxelsPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto scenePlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto settingsPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto colliderGizmosPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto consolePlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto debugCameraPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto ecsStatisticsPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto entityInspectorPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto metricsPanelPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto playPauseToolPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto toolsPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto selectionPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto settingsInspectorPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto toolboxPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto transformGizmoPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto worldInspectorPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto transformPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto uiCanvasPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto colorRectPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto uiImagePlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto freeCameraPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto voxelsPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
-
auto windowPlugin(Cubos& cubos) -> CUBOS_
ENGINE_ API void - Plugin entry function.
Variables
-
CUBOS_
ENGINE_ API Tag assetsInitTag - Initializes the assets manager and loads the meta files (after settingsTag).
-
CUBOS_
ENGINE_ API Tag assetsBridgeTag - Systems which add bridges to the asset manager should be tagged with this.
-
CUBOS_
ENGINE_ API Tag assetsCleanupTag - Frees any assets no longer in use.
-
CUBOS_
ENGINE_ API Tag assetsTag - Startup systems which load assets should be tagged with this.
-
CUBOS_
ENGINE_ API Tag collisionsTag - Detects collisions and updates colliders.
-
CUBOS_
ENGINE_ API Tag fixedStepTag - Systems with this tag run at a fixed framerate.
-
CUBOS_
ENGINE_ API Tag gizmosInitTag - Gizmos renderer is initialized, after windowInitTag.
-
CUBOS_
ENGINE_ API Tag gizmosInputTag - Gizmos interaction is handled, after windowPollTag and before gizmosDrawTag.
-
CUBOS_
ENGINE_ API Tag gizmosDrawTag - Gizmos are drawn to all render targets with GizmosTarget components.
-
CUBOS_
ENGINE_ API Tag imguiInitTag ImGui
is initialized, after windowInitTag.-
CUBOS_
ENGINE_ API Tag imguiBeginTag - The ImGui frame begins, after windowPollTag.
-
CUBOS_
ENGINE_ API Tag imguiEndTag - The ImGui frame ends and is rendered to the window's render target.
-
CUBOS_
ENGINE_ API Tag imguiTag - Tag to be used by all systems which call ImGui functions. Runs between imguiBeginTag and imguiEndTag.
-
CUBOS_
ENGINE_ API Tag inputUpdateTag - Updates the input state.
-
CUBOS_
ENGINE_ API Tag physicsApplyForcesTag - Tag which should be used on all systems that modify velocity or apply forces or impulses.
-
CUBOS_
ENGINE_ API Tag bloomTag - Tags the system which applies the Bloom effect.
-
CUBOS_
ENGINE_ API Tag createCascadedShadowMapsTag - Creates the shadow maps.
-
CUBOS_
ENGINE_ API Tag drawToCascadedShadowMapsTag - Systems which draw to the cascaded shadow maps should be tagged with this.
-
CUBOS_
ENGINE_ API Tag deferredShadingTag - Tags the system which applies the Deferred Shading technique.
-
CUBOS_
ENGINE_ API Tag createRenderDepthTag - Recreates the RenderDepth texture if necessary - for example, due to a render target resize.
-
CUBOS_
ENGINE_ API Tag drawToRenderDepthTag - Systems which draw to RenderDepth textures should be tagged with this.
-
CUBOS_
ENGINE_ API Tag createGBufferTag - Recreates the GBuffer if necessary - for example, due to a render target resize.
-
CUBOS_
ENGINE_ API Tag drawToGBufferTag - Systems which draw to GBuffer textures should be tagged with this.
-
CUBOS_
ENGINE_ API Tag rasterizeToGBufferTag - Rasterizes RenderMesh components to the GBuffer textures.
-
CUBOS_
ENGINE_ API Tag createHDRTag - Recreates the HDR texture if necessary - for example, due to a render target resize.
-
CUBOS_
ENGINE_ API Tag drawToHDRTag - Systems which draw to HDR textures should be tagged with this.
-
CUBOS_
ENGINE_ API Tag renderMeshPoolInitTag - Render mesh pool is initialized (startup).
-
CUBOS_
ENGINE_ API Tag createRenderPickerTag - Recreates the RenderPicker if necessary - for example, due to a render target resize.
-
CUBOS_
ENGINE_ API Tag drawToRenderPickerTag - Systems which draw to RenderPicker textures should be tagged with this.
-
CUBOS_
ENGINE_ API Tag createShadowAtlasTag - Creates the shadow atlas.
-
CUBOS_
ENGINE_ API Tag reserveShadowCastersTag - Reserves space for shadow casters.
-
CUBOS_
ENGINE_ API Tag drawToShadowAtlasTag - Systems which draw to the shadow atlas texture should be tagged with this.
-
CUBOS_
ENGINE_ API Tag splitScreenTag - Tags the system which adjusts the viewports.
-
CUBOS_
ENGINE_ API Tag drawToSSAOTag - Tags the system which applies the Screen Space Ambient Occlusion technique.
-
CUBOS_
ENGINE_ API Tag resizeRenderTargetTag - Resizes the Render Target if necessary - for example, due to a window resize.
-
CUBOS_
ENGINE_ API Tag drawToRenderTargetTag - Systems which draw to Render Target framebuffers should be tagged with this.
-
CUBOS_
ENGINE_ API Tag toneMappingTag - Tags the system which does the tone mapping.
-
CUBOS_
ENGINE_ API Tag settingsTag - The settings are loaded, overriding values set previously.
-
CUBOS_
ENGINE_ API Tag transformMissingLocalTag - The LocalToWorld components are added to entities with Position, Rotation or Scale components.
-
CUBOS_
ENGINE_ API Tag transformMissingTag - The Position, Rotation, Scale and possibly LocalToParent components are added to entities with LocalToWorld components.
-
CUBOS_
ENGINE_ API Tag transformUpdateRelativeTag - The LocalToWorld or LocalToParent components are updated with the information from the Position, Rotation and Scale components.
-
CUBOS_
ENGINE_ API Tag transformUpdateTag - The LocalToWorld components are updated with the information from the LocalToParent component and the LocalToWorld components of the parent.
-
CUBOS_
ENGINE_ API Tag uiCanvasChildrenUpdateTag - UICanvas components' information is passed to related UIElement components.
-
CUBOS_
ENGINE_ API Tag uiElementPropagateTag - The UIElement components are updated with information from their parents.
-
CUBOS_
ENGINE_ API Tag uiBeginTag - Readies canvas for drawing.
-
CUBOS_
ENGINE_ API Tag uiDrawTag - Systems which draw to canvas should be tagged with this.
-
CUBOS_
ENGINE_ API Tag uiEndTag - All queued draw commands are collected and executed to the render targets.
-
CUBOS_
ENGINE_ API Tag windowInitTag - Window is opened, runs after settingsTag.
-
CUBOS_
ENGINE_ API Tag windowPollTag - The window is polled for events, sending core::
io:: WindowEvent's. -
CUBOS_
ENGINE_ API Tag windowRenderTag - The window's back buffers are swapped.
Typedef documentation
using cubos:: engine:: Tag = core:: ecs:: Tag
#include <engine/prelude.hpp>
Represents a tag to be used with the Cubos class.
using cubos:: engine:: Plugin = core:: ecs:: Plugin
#include <engine/prelude.hpp>
Function pointer type representing a plugin.
using cubos:: engine:: Cubos = core:: ecs:: Cubos
#include <engine/prelude.hpp>
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.
using cubos:: engine:: DeltaTime = core:: ecs:: DeltaTime
#include <engine/prelude.hpp>
Resource which stores the time since the last iteration of the main loop started.
This resource is added and updated by the Cubos class.
using cubos:: engine:: ShouldQuit = core:: ecs:: ShouldQuit
#include <engine/prelude.hpp>
Resource used as a flag to indicate whether the main loop should stop running.
This resource is added by the Cubos class, initially set to true.
using cubos:: engine:: Arguments = core:: ecs:: Arguments
#include <engine/prelude.hpp>
Resource which stores the command-line arguments.
This resource is added by the Cubos class.
#include <engine/prelude.hpp>
template<typename... ComponentTypes>
using cubos:: engine:: Query = core:: ecs:: Query<ComponentTypes...>
System argument which holds the result of a query over all entities in world which match the given arguments.
An example of a valid query is:
Query<Position&, const Velocity&, Opt<Rotation&>, Opt<const Scale&>>
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, const
should be used.
using cubos:: engine:: Entity = core:: ecs:: Entity
#include <engine/prelude.hpp>
Identifies an entity.
When serializing/deserializing, if there's a data::old::SerializationMap<Entity, std::string, EntityHash> 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.
using cubos:: engine:: Commands = core:: ecs:: Commands
#include <engine/prelude.hpp>
System argument used to write ECS commands and execute them at a later time.
Internally wraps a reference to a CommandBuffer object.
#include <engine/prelude.hpp>
template<typename T>
using cubos:: engine:: Opt = core:: memory:: Opt<T>
Wrapper for reference types to indicate that the given argument type is optional.
Template parameters | |
---|---|
T | Argument type. |
#include <engine/prelude.hpp>
template<typename T, unsigned int M = DEFAULT_ FILTER_ MASK>
using cubos:: engine:: EventReader = core:: ecs:: EventReader<T, M>
System arguments used to read events of type T
.
Template parameters | |
---|---|
T | Event. |
M | Filter mask. |
Filtering the received events by their mask is also possible via the parameter M
. By default, the reader will read all events sent.
#include <engine/prelude.hpp>
template<typename T>
using cubos:: engine:: EventWriter = core:: ecs:: EventWriter<T>
System argument which allows the system to send events of type T
to other systems.
Template parameters | |
---|---|
T |
Variable documentation
CUBOS_ ENGINE_ API Tag cubos:: engine:: assetsInitTag
#include <engine/assets/plugin.hpp>
Initializes the assets manager and loads the meta files (after settingsTag).
CUBOS_ ENGINE_ API Tag cubos:: engine:: assetsBridgeTag
#include <engine/assets/plugin.hpp>
Systems which add bridges to the asset manager should be tagged with this.
CUBOS_ ENGINE_ API Tag cubos:: engine:: assetsCleanupTag
#include <engine/assets/plugin.hpp>
Frees any assets no longer in use.
CUBOS_ ENGINE_ API Tag cubos:: engine:: assetsTag
#include <engine/assets/plugin.hpp>
Startup systems which load assets should be tagged with this.
CUBOS_ ENGINE_ API Tag cubos:: engine:: collisionsTag
#include <engine/collisions/plugin.hpp>
Detects collisions and updates colliders.
CUBOS_ ENGINE_ API Tag cubos:: engine:: fixedStepTag
#include <engine/fixed_step/plugin.hpp>
Systems with this tag run at a fixed framerate.
CUBOS_ ENGINE_ API Tag cubos:: engine:: gizmosInitTag
#include <engine/gizmos/plugin.hpp>
Gizmos renderer is initialized, after windowInitTag.
CUBOS_ ENGINE_ API Tag cubos:: engine:: gizmosInputTag
#include <engine/gizmos/plugin.hpp>
Gizmos interaction is handled, after windowPollTag and before gizmosDrawTag.
CUBOS_ ENGINE_ API Tag cubos:: engine:: gizmosDrawTag
#include <engine/gizmos/plugin.hpp>
Gizmos are drawn to all render targets with GizmosTarget components.
CUBOS_ ENGINE_ API Tag cubos:: engine:: imguiInitTag
#include <engine/imgui/plugin.hpp>
ImGui
is initialized, after windowInitTag.
CUBOS_ ENGINE_ API Tag cubos:: engine:: imguiBeginTag
#include <engine/imgui/plugin.hpp>
The ImGui frame begins, after windowPollTag.
CUBOS_ ENGINE_ API Tag cubos:: engine:: imguiEndTag
#include <engine/imgui/plugin.hpp>
The ImGui frame ends and is rendered to the window's render target.
CUBOS_ ENGINE_ API Tag cubos:: engine:: imguiTag
#include <engine/imgui/plugin.hpp>
Tag to be used by all systems which call ImGui functions. Runs between imguiBeginTag and imguiEndTag.
CUBOS_ ENGINE_ API Tag cubos:: engine:: inputUpdateTag
#include <engine/input/plugin.hpp>
Updates the input state.
CUBOS_ ENGINE_ API Tag cubos:: engine:: physicsApplyForcesTag
#include <engine/physics/plugin.hpp>
Tag which should be used on all systems that modify velocity or apply forces or impulses.
CUBOS_ ENGINE_ API Tag cubos:: engine:: renderMeshPoolInitTag
#include <engine/render/mesh/plugin.hpp>
Render mesh pool is initialized (startup).
CUBOS_ ENGINE_ API Tag cubos:: engine:: createRenderPickerTag
#include <engine/render/picker/plugin.hpp>
Recreates the RenderPicker if necessary - for example, due to a render target resize.
CUBOS_ ENGINE_ API Tag cubos:: engine:: drawToRenderPickerTag
#include <engine/render/picker/plugin.hpp>
Systems which draw to RenderPicker textures should be tagged with this.
CUBOS_ ENGINE_ API Tag cubos:: engine:: settingsTag
#include <engine/settings/plugin.hpp>
The settings are loaded, overriding values set previously.
CUBOS_ ENGINE_ API Tag cubos:: engine:: transformMissingLocalTag
#include <engine/transform/plugin.hpp>
The LocalToWorld components are added to entities with Position, Rotation or Scale components.
CUBOS_ ENGINE_ API Tag cubos:: engine:: transformMissingTag
#include <engine/transform/plugin.hpp>
The Position, Rotation, Scale and possibly LocalToParent components are added to entities with LocalToWorld components.
CUBOS_ ENGINE_ API Tag cubos:: engine:: transformUpdateRelativeTag
#include <engine/transform/plugin.hpp>
The LocalToWorld or LocalToParent components are updated with the information from the Position, Rotation and Scale components.
CUBOS_ ENGINE_ API Tag cubos:: engine:: transformUpdateTag
#include <engine/transform/plugin.hpp>
The LocalToWorld components are updated with the information from the LocalToParent component and the LocalToWorld components of the parent.
CUBOS_ ENGINE_ API Tag cubos:: engine:: uiCanvasChildrenUpdateTag
#include <engine/ui/canvas/plugin.hpp>
UICanvas components' information is passed to related UIElement components.
CUBOS_ ENGINE_ API Tag cubos:: engine:: uiElementPropagateTag
#include <engine/ui/canvas/plugin.hpp>
The UIElement components are updated with information from their parents.
CUBOS_ ENGINE_ API Tag cubos:: engine:: uiBeginTag
#include <engine/ui/canvas/plugin.hpp>
Readies canvas for drawing.
CUBOS_ ENGINE_ API Tag cubos:: engine:: uiDrawTag
#include <engine/ui/canvas/plugin.hpp>
Systems which draw to canvas should be tagged with this.
CUBOS_ ENGINE_ API Tag cubos:: engine:: uiEndTag
#include <engine/ui/canvas/plugin.hpp>
All queued draw commands are collected and executed to the render targets.
CUBOS_ ENGINE_ API Tag cubos:: engine:: windowInitTag
#include <engine/window/plugin.hpp>
Window is opened, runs after settingsTag.
CUBOS_ ENGINE_ API Tag cubos:: engine:: windowPollTag
#include <engine/window/plugin.hpp>
The window is polled for events, sending core::
CUBOS_ ENGINE_ API Tag cubos:: engine:: windowRenderTag
#include <engine/window/plugin.hpp>
The window's back buffers are swapped.