Skip to content

EntropyCanvas

Name
EntropyCanvas::USD
EntropyCanvas::Shaders
EntropyCanvas::Schema
EntropyCanvas::Geometry
EntropyCanvas::Core
Name
structEntropyCanvas::WorldBounds
Defines the size of the mesh in the world (World Space).
classEntropyCanvas::UsdSyncService
Service for USD scene serialization and synchronization.
classEntropyCanvas::UsdMeshSerializer
Serializes MeshData to USD format.
classEntropyCanvas::UsdMeshExtractor
Extracts mesh geometry from USD stages and files.
classEntropyCanvas::UsdLightSerializer
Serializes Light components to USD using native UsdLux types.
classEntropyCanvas::UploadTextureHandle
Handle for tracking texture upload operations.
classEntropyCanvas::UploadShaderHandle
Handle for tracking shader upload operations.
classEntropyCanvas::USDService
Service for USD plugin registration.
structEntropyCanvas::USDPluginInitializer
classEntropyCanvas::TransformPropagationSystem
System for propagating Transform changes through the entity hierarchy.
structEntropyCanvas::Transform
Core transform component - represents position, rotation, and scale in 3D space.
structEntropyCanvas::TextureMetadata
Metadata for texture assets.
classEntropyCanvas::TextureLoader
Texture loading utility class.
structEntropyCanvas::TextureData
CPU-side texture pixel container.
classEntropyCanvas::TextureClient
Client API for texture operations.
structEntropyCanvas::SimulationSource
Declares which system is authoritative for this entity’s transform.
classEntropyCanvas::SimulationCommandQueue
Thread-safe command queue for external systems to submit mutations to the ECS.
structEntropyCanvas::ShaderUploadResult
Result of shader upload operation.
structEntropyCanvas::ShaderParameterDef
Parameter definition for a shader.
structEntropyCanvas::ShaderModuleEntry
Module entry in the shader asset.
structEntropyCanvas::ShaderMetadata
Shader metadata extracted from source.
classEntropyCanvas::ShaderClient
Client API for shader operations.
structEntropyCanvas::ShaderBundle
Complete shader bundle for upload.
structEntropyCanvas::ShaderAssetHeader
Binary format header for shader assets.
structEntropyCanvas::ServerOrigin
Server origin tracking for multi-server scenes.
structEntropyCanvas::SceneSnapshot
Scene snapshot - full scene state from server.
classEntropyCanvas::SceneService
SceneService manages scene graph operations via ISceneGraph interface.
structEntropyCanvas::SceneRoot
Scene root component - marks an entity as the root of a scene.
classEntropyCanvas::SceneReplicator
Schema-driven scene replicator using Flecs runtime API.
structEntropyCanvas::SceneMembership
Scene membership component - marks an entity as belonging to a scene.
classEntropyCanvas::SceneGraph
Basic scene graph implementation.
structEntropyCanvas::SceneDisabled
Tag component marking an entity as disabled for scene visibility.
structEntropyCanvas::RotatorComponent
Rotator component for simple rotation animation.
structEntropyCanvas::RenderDirty
Tag component indicating entity needs render extraction.
structEntropyCanvas::ReflectionProbeComponent
Single reflection probe component (for manual placement).
structEntropyCanvas::RainbowShiftComponent
Rainbow shift component for cycling material colors.
structEntropyCanvas::PropertyDelta
Property delta - a single property change from the server.
structEntropyCanvas::ProbeVolumeComponent
Probe volume component for spherical gaussian global illumination.
classEntropyCanvas::NetworkSession
NetworkSession - High-level session that manages a peer connection.
structEntropyCanvas::MeshExtractionResult
Result of mesh extraction.
structEntropyCanvas::MeshData
Mesh geometry data suitable for rendering.
structEntropyCanvas::MeshComponent
Mesh component for renderable geometry.
structEntropyCanvas::Mesh
Mesh component for geometry references.
structEntropyCanvas::MaterialData
Shared material data - portable across SDK, Server, Portal.
structEntropyCanvas::LocalBounds
Defines the size of the mesh in its own coordinate space (Model Space).
structEntropyCanvas::LightProbeComponent
Single light probe component for SG-based ambient lighting.
structEntropyCanvas::Light
Light component for scene illumination.
classEntropyCanvas::ISceneGraph
Interface for scene graph implementations.
classEntropyCanvas::IExternalTransformSource
Interface for external transform sources.
classEntropyCanvas::IDataProvider
IDataProvider - Abstract interface for scene data sources.
structEntropyCanvas::FirstPersonControllerComponent
First-person camera controller component.
classEntropyCanvas::ExternalTransformRegistry
Registry mapping entity IDs to their external transform sources.
structEntropyCanvas::EntityTypeInfo
Entity type information for network synchronization.
structEntropyCanvas::EntitySnapshot
Entity snapshot - full entity state from server.
structEntropyCanvas::DiscoveredCanvas
Information about a discovered CanvasEngine instance.
classEntropyCanvas::ComponentSchemaService
Service for managing component schema lifecycle and caching.
classEntropyCanvas::CanvasDiscovery
CanvasDiscovery - Utility for finding CanvasEngine instances.
structEntropyCanvas::CanvasClientConfig
Configuration for CanvasClient connection.
classEntropyCanvas::CanvasClient
CanvasClient - IDataProvider implementation for CanvasEngine connectivity.
structEntropyCanvas::CameraComponent
Camera component for viewports and render-to-texture.
structEntropyCanvas::AssetUploadResult
Result of an asset upload operation.
structEntropyCanvas::AssetResolveResult
Result of an asset resolve operation.
class[EntropyCanvas::AssetOperationHandle< void >](/api/EntropyCanvas/AssetOperationHandle< void >/)
Specialization for void operations.
classEntropyCanvas::AssetOperationHandle
Handle for tracking async asset operations.
class[EntropyCanvas::AssetOpState< void >](/api/EntropyCanvas/AssetOpState< void >/)
Void specialization for operations with no result data.
classEntropyCanvas::AssetOpState
Base state object for async asset operations.
structEntropyCanvas::AssetOpErrorInfo
Error information for failed operations.
structEntropyCanvas::AssetInfo
Metadata for an asset in the catalog.
classEntropyCanvas::AssetClient
AssetClient - Client API for CanvasEngine’s asset system.
structEntropyCanvas::ActiveCamera
Tag component for the active camera.
Name
using AssetOperationHandle< void >VoidHandle
enum class uint8_tVertexTier { Tangent = 1, Extended = 2, Basic = 0}
Vertex format tier for GPU buffer allocation.
using AssetOperationHandle< AssetUploadResult >UploadHandle
enum class uint8_tTextureType { TextureCubeArray = 5, TextureCube = 3, Texture3D = 2, Texture2DArray = 4, Texture2D = 1, Texture1D = 0}
Texture dimension type.
enum class uint8_tTextureFormat { Unknown = 0, RGBA8 = 3, RGBA32F = 9, RGBA16F = 6, RG8 = 2, RG32F = 8, RG16F = 5, R8 = 1, R32F = 7, R16F = 4, BC7 = 14, BC6H = 13, BC5 = 12, BC3 = 11, BC1 = 10, ASTC_8x8 = 22, ASTC_6x6 = 21, ASTC_4x4 = 20}
Texture pixel format.
enum classSGLobeConfig { SG9, SG12}
Spherical Gaussian lobe configuration.
using AssetOperationHandle< AssetResolveResult >ResolveHandle
using AssetOperationHandle< std::vector< std::optional< AssetResolveResult > > >ResolveBatchHandle
using EntropyEngine::Networking::PropertyValuePropertyValue
Property value variant for delta updates.
enum classProjectionType { Perspective, Orthographic}
Camera projection type.
enum classProbeUpdatePriority { Streaming, Static, OnDemand}
Probe volume update priority modes.
using std::function< void(flecs::entity, const PropertyDelta &)>PostProcessHandler
Post-processing handler invoked after a property is applied.
using std::function< void(const AssetId &materialId, const MaterialData &data)>MaterialReceivedCallback
Callback invoked when a new material is received from the network.
using std::variant< float, glm::vec2, glm::vec3, glm::vec4, glm::mat3, glm::mat4, int32_t, AssetId >MaterialPropertyValue
Portable property value for network transfer.
enum class uint8_tMaterialPropertyType { Vec4 = 3, Vec3 = 2, Vec2 = 1, Mat4 = 5, Mat3 = 4, Int = 6, Float = 0, AssetRef = 7}
Get the type index of a MaterialPropertyValue.
using std::function< void(const AssetId &materialId, const std::string &propertyName, const MaterialPropertyValue &value, uint64_t version, uint64_t originSessionId)>MaterialPropertyChangedCallback
Callback invoked when a material property is changed from the network.
enum class uint32_tLightType { Sphere = 1, Distant = 0}
Light type enumeration (aligned with UsdLux).
using std::array< uint8_t, 32 >Hash256
Generic 256-bit hash for verification purposes.
using AssetOperationHandle< std::vector< uint8_t > >FetchHandle
enum class uint8_tDeliveryMethod { DirectFetch = 0, CanvasWebRTC = 2, CanvasHTTP = 1}
Method for portal to fetch asset data.
enum class uint8_tContentType { Texture = 1, Sound = 2, Shader = 5, Scene = 3, Mesh = 0, Material = 4}
Type of asset content.
using EntropyEngine::Networking::ComponentTypeHashComponentTypeHash
Component type hash for identifying component types.
enum classComponentType { Transform, Rotator, ReflectionProbe, RainbowShift, Mesh, LightProbe, Light, Custom, Camera}
Component types that can be synced from the server.
enum classComponentTrustLevel { External, Builtin, AppRegistered}
Trust level for registered components.
enum class uint8_tColorSpace { sRGB = 1, Linear = 0}
Color space for texture interpretation.
enum classCameraRenderMode { Standard, Cubemap}
Camera render mode - determines render target type.
enum classAssetOpStatus { Running, Pending, Failed, Complete}
Status of an async asset operation.
enum classAssetOpError { Unknown, Timeout, NotFound, None = 0, NetworkError, InvalidSession, Cancelled, AlreadyInProgress}
Error codes for asset operations.
using std::variant< std::monostate, TextureMetadata, ShaderMetadata >AssetMetadataVariant
Type-safe variant for asset metadata.
using EntropyEngine::Networking::AssetIdAssetId
Content-addressed asset identifier using SHA-256.
Name
const char *textureTypeToString(TextureType type)
Get a human-readable string for a TextureType.
const char *textureFormatToString(TextureFormat format)
Get a human-readable string for a TextureFormat.
MaterialPropertyTypegetMaterialPropertyType(const MaterialPropertyValue & value)
Get the MaterialPropertyType for a MaterialPropertyValue.
voidforceUSDPluginRegistryLink()
Force the linker to include this translation unit.
const char *deliveryMethodToString(DeliveryMethod method)
Get a human-readable string for a DeliveryMethod.
const char *contentTypeToString(ContentType type)
Get a human-readable string for a ContentType.
const char *colorSpaceToString(ColorSpace colorSpace)
Get a human-readable string for a ColorSpace.
voidRegisterCoreUSDTypes()
Name
USDPluginInitializers_initializer
using EntropyCanvas::VoidHandle = AssetOperationHandle<void>;
EnumeratorValueDescription
Tangent1Basic + tangent(vec4).
Extended2Tangent + uv2+uv3 packed + color(vec4).
Basic0position(vec3), normal(vec3), uv0+uv1 packed

Vertex format tier for GPU buffer allocation.

Tiers are cumulative - each tier includes all data from lower tiers. This mirrors EntropyPortal’s vertex buffer slot system:

  • Slot 0: Basic data (always bound)
  • Slot 1: Tangent data (optional)
  • Slot 2: Extended data (optional)
using EntropyCanvas::UploadHandle = AssetOperationHandle<AssetUploadResult>;
EnumeratorValueDescription
TextureCubeArray5
TextureCube3
Texture3D2
Texture2DArray4
Texture2D1
Texture1D0

Texture dimension type.

EnumeratorValueDescription
Unknown0
RGBA83
RGBA32F9
RGBA16F6
RG82
RG32F8
RG16F5
R81
R32F7
R16F4
BC714
BC6H13
BC512
BC311
BC110
ASTC_8x822
ASTC_6x621
ASTC_4x420

Texture pixel format.

EnumeratorValueDescription
SG9
SG12

Spherical Gaussian lobe configuration.

using EntropyCanvas::ResolveHandle = AssetOperationHandle<AssetResolveResult>;
using EntropyCanvas::ResolveBatchHandle = AssetOperationHandle<std::vector<std::optional<AssetResolveResult>>>;
using EntropyCanvas::PropertyValue = EntropyEngine::Networking::PropertyValue;

Property value variant for delta updates.

Uses the canonical EntropyNetworking type for wire protocol compatibility.

EnumeratorValueDescription
Perspective
Orthographic

Camera projection type.

EnumeratorValueDescription
Streaming
Static
OnDemand

Probe volume update priority modes.

using EntropyCanvas::PostProcessHandler = std::function<void(flecs::entity, const PropertyDelta&)>;

Post-processing handler invoked after a property is applied.

Parameters:

  • entity The entity that was modified
  • delta The property delta that was applied
using EntropyCanvas::MaterialReceivedCallback = std::function<void(const AssetId& materialId, const MaterialData& data)>;

Callback invoked when a new material is received from the network.

Parameters:

  • materialId The AssetId of the material
  • data The complete material data
using EntropyCanvas::MaterialPropertyValue = std::variant<float, glm::vec2, glm::vec3, glm::vec4, glm::mat3, glm::mat4, int32_t,
AssetId
>;

Portable property value for network transfer.

Uses AssetId for texture/sampler references instead of GPU pointers. This allows MaterialData to be serialized and transferred across network boundaries without GPU dependencies.

EnumeratorValueDescription
Vec43
Vec32
Vec21
Mat45
Mat34
Int6
Float0
AssetRef7

Get the type index of a MaterialPropertyValue.

using EntropyCanvas::MaterialPropertyChangedCallback =
std::function<void(const AssetId& materialId, const std::string& propertyName, const MaterialPropertyValue& value,
uint64_t version, uint64_t originSessionId)>;

Callback invoked when a material property is changed from the network.

Parameters:

  • materialId The AssetId of the material
  • propertyName The name of the changed property
  • value The new property value
  • version The new material version after this change
  • originSessionId The session that made the change (for echo prevention)
EnumeratorValueDescription
Sphere1
Distant0

Light type enumeration (aligned with UsdLux).

using EntropyCanvas::Hash256 = std::array<uint8_t, 32>;

Generic 256-bit hash for verification purposes.

Used for hashes that are NOT asset lookup keys (e.g., plaintext verification). For asset lookup, use EntropyCanvas::AssetId instead.

using EntropyCanvas::FetchHandle = AssetOperationHandle<std::vector<uint8_t>>;
EnumeratorValueDescription
DirectFetch0
CanvasWebRTC2
CanvasHTTP1

Method for portal to fetch asset data.

EnumeratorValueDescription
Texture1
Sound2
Shader5
Scene3
Mesh0
Material4

Type of asset content.

using EntropyCanvas::ComponentTypeHash = EntropyEngine::Networking::ComponentTypeHash;

Component type hash for identifying component types.

Uses the canonical EntropyNetworking type for wire protocol compatibility.

EnumeratorValueDescription
Transform
Rotator
ReflectionProbe
RainbowShift
Mesh
LightProbe
Light
Custom
Camera

Component types that can be synced from the server.

EnumeratorValueDescription
ExternalFrom network/external source, untrusted.
BuiltinSDK registered, fully trusted for special processing.
AppRegisteredApp registered custom component, trusted by app.

Trust level for registered components.

Determines how much trust we place in a component’s schema and what special processing is allowed.

EnumeratorValueDescription
sRGB1
Linear0

Color space for texture interpretation.

EnumeratorValueDescription
Standard
Cubemap

Camera render mode - determines render target type.

EnumeratorValueDescription
Running
Pending
Failed
Complete

Status of an async asset operation.

EnumeratorValueDescription
Unknown
Timeout
NotFound
None0
NetworkError
InvalidSession
Cancelled
AlreadyInProgress

Error codes for asset operations.

using EntropyCanvas::AssetMetadataVariant =
std::variant<std::monostate,
TextureMetadata,
ShaderMetadata
>;

Type-safe variant for asset metadata.

Supports metadata for different asset types. Use std::monostate for assets without type-specific metadata.

using EntropyCanvas::AssetId = EntropyEngine::Networking::AssetId;

Content-addressed asset identifier using SHA-256.

AssetId is a 256-bit (32-byte) hash that uniquely identifies an asset by its content. Same content always produces the same AssetId, enabling:

  • Global uniqueness without central authority
  • Automatic deduplication of identical assets
  • Integrity verification (asset matches its ID)

Used for meshes, materials, textures, and any other asset type.

This is a type alias for EntropyEngine::Networking::AssetId to ensure network protocol compatibility.

inline const char * textureTypeToString(
TextureType type
)

Get a human-readable string for a TextureType.

inline const char * textureFormatToString(
TextureFormat format
)

Get a human-readable string for a TextureFormat.

inline MaterialPropertyType getMaterialPropertyType(
const MaterialPropertyValue & value
)

Get the MaterialPropertyType for a MaterialPropertyValue.

void forceUSDPluginRegistryLink()

Force the linker to include this translation unit.

Call this function from any code that uses USD to ensure the static initializer runs before RegisterPlugins is called.

inline const char * deliveryMethodToString(
DeliveryMethod method
)

Get a human-readable string for a DeliveryMethod.

inline const char * contentTypeToString(
ContentType type
)

Get a human-readable string for a ContentType.

inline const char * colorSpaceToString(
ColorSpace colorSpace
)

Get a human-readable string for a ColorSpace.

static void RegisterCoreUSDTypes()
static USDPluginInitializer s_initializer;

Updated on 2026-01-26 at 17:14:35 -0500