EntropyCanvas
EntropyCanvas
Section titled “EntropyCanvas”Namespaces
Section titled “Namespaces”| Name |
|---|
| EntropyCanvas::USD |
| EntropyCanvas::Shaders |
| EntropyCanvas::Schema |
| EntropyCanvas::Geometry |
| EntropyCanvas::Core |
Classes
Section titled “Classes”| Name | |
|---|---|
| struct | EntropyCanvas::WorldBounds Defines the size of the mesh in the world (World Space). |
| class | EntropyCanvas::UsdSyncService Service for USD scene serialization and synchronization. |
| class | EntropyCanvas::UsdMeshSerializer Serializes MeshData to USD format. |
| class | EntropyCanvas::UsdMeshExtractor Extracts mesh geometry from USD stages and files. |
| class | EntropyCanvas::UsdLightSerializer Serializes Light components to USD using native UsdLux types. |
| class | EntropyCanvas::UploadTextureHandle Handle for tracking texture upload operations. |
| class | EntropyCanvas::UploadShaderHandle Handle for tracking shader upload operations. |
| class | EntropyCanvas::USDService Service for USD plugin registration. |
| struct | EntropyCanvas::USDPluginInitializer |
| class | EntropyCanvas::TransformPropagationSystem System for propagating Transform changes through the entity hierarchy. |
| struct | EntropyCanvas::Transform Core transform component - represents position, rotation, and scale in 3D space. |
| struct | EntropyCanvas::TextureMetadata Metadata for texture assets. |
| class | EntropyCanvas::TextureLoader Texture loading utility class. |
| struct | EntropyCanvas::TextureData CPU-side texture pixel container. |
| class | EntropyCanvas::TextureClient Client API for texture operations. |
| struct | EntropyCanvas::SimulationSource Declares which system is authoritative for this entity’s transform. |
| class | EntropyCanvas::SimulationCommandQueue Thread-safe command queue for external systems to submit mutations to the ECS. |
| struct | EntropyCanvas::ShaderUploadResult Result of shader upload operation. |
| struct | EntropyCanvas::ShaderParameterDef Parameter definition for a shader. |
| struct | EntropyCanvas::ShaderModuleEntry Module entry in the shader asset. |
| struct | EntropyCanvas::ShaderMetadata Shader metadata extracted from source. |
| class | EntropyCanvas::ShaderClient Client API for shader operations. |
| struct | EntropyCanvas::ShaderBundle Complete shader bundle for upload. |
| struct | EntropyCanvas::ShaderAssetHeader Binary format header for shader assets. |
| struct | EntropyCanvas::ServerOrigin Server origin tracking for multi-server scenes. |
| struct | EntropyCanvas::SceneSnapshot Scene snapshot - full scene state from server. |
| class | EntropyCanvas::SceneService SceneService manages scene graph operations via ISceneGraph interface. |
| struct | EntropyCanvas::SceneRoot Scene root component - marks an entity as the root of a scene. |
| class | EntropyCanvas::SceneReplicator Schema-driven scene replicator using Flecs runtime API. |
| struct | EntropyCanvas::SceneMembership Scene membership component - marks an entity as belonging to a scene. |
| class | EntropyCanvas::SceneGraph Basic scene graph implementation. |
| struct | EntropyCanvas::SceneDisabled Tag component marking an entity as disabled for scene visibility. |
| struct | EntropyCanvas::RotatorComponent Rotator component for simple rotation animation. |
| struct | EntropyCanvas::RenderDirty Tag component indicating entity needs render extraction. |
| struct | EntropyCanvas::ReflectionProbeComponent Single reflection probe component (for manual placement). |
| struct | EntropyCanvas::RainbowShiftComponent Rainbow shift component for cycling material colors. |
| struct | EntropyCanvas::PropertyDelta Property delta - a single property change from the server. |
| struct | EntropyCanvas::ProbeVolumeComponent Probe volume component for spherical gaussian global illumination. |
| class | EntropyCanvas::NetworkSession NetworkSession - High-level session that manages a peer connection. |
| struct | EntropyCanvas::MeshExtractionResult Result of mesh extraction. |
| struct | EntropyCanvas::MeshData Mesh geometry data suitable for rendering. |
| struct | EntropyCanvas::MeshComponent Mesh component for renderable geometry. |
| struct | EntropyCanvas::Mesh Mesh component for geometry references. |
| struct | EntropyCanvas::MaterialData Shared material data - portable across SDK, Server, Portal. |
| struct | EntropyCanvas::LocalBounds Defines the size of the mesh in its own coordinate space (Model Space). |
| struct | EntropyCanvas::LightProbeComponent Single light probe component for SG-based ambient lighting. |
| struct | EntropyCanvas::Light Light component for scene illumination. |
| class | EntropyCanvas::ISceneGraph Interface for scene graph implementations. |
| class | EntropyCanvas::IExternalTransformSource Interface for external transform sources. |
| class | EntropyCanvas::IDataProvider IDataProvider - Abstract interface for scene data sources. |
| struct | EntropyCanvas::FirstPersonControllerComponent First-person camera controller component. |
| class | EntropyCanvas::ExternalTransformRegistry Registry mapping entity IDs to their external transform sources. |
| struct | EntropyCanvas::EntityTypeInfo Entity type information for network synchronization. |
| struct | EntropyCanvas::EntitySnapshot Entity snapshot - full entity state from server. |
| struct | EntropyCanvas::DiscoveredCanvas Information about a discovered CanvasEngine instance. |
| class | EntropyCanvas::ComponentSchemaService Service for managing component schema lifecycle and caching. |
| class | EntropyCanvas::CanvasDiscovery CanvasDiscovery - Utility for finding CanvasEngine instances. |
| struct | EntropyCanvas::CanvasClientConfig Configuration for CanvasClient connection. |
| class | EntropyCanvas::CanvasClient CanvasClient - IDataProvider implementation for CanvasEngine connectivity. |
| struct | EntropyCanvas::CameraComponent Camera component for viewports and render-to-texture. |
| struct | EntropyCanvas::AssetUploadResult Result of an asset upload operation. |
| struct | EntropyCanvas::AssetResolveResult Result of an asset resolve operation. |
| class | [EntropyCanvas::AssetOperationHandle< void >](/api/EntropyCanvas/AssetOperationHandle< void >/) Specialization for void operations. |
| class | EntropyCanvas::AssetOperationHandle Handle for tracking async asset operations. |
| class | [EntropyCanvas::AssetOpState< void >](/api/EntropyCanvas/AssetOpState< void >/) Void specialization for operations with no result data. |
| class | EntropyCanvas::AssetOpState Base state object for async asset operations. |
| struct | EntropyCanvas::AssetOpErrorInfo Error information for failed operations. |
| struct | EntropyCanvas::AssetInfo Metadata for an asset in the catalog. |
| class | EntropyCanvas::AssetClient AssetClient - Client API for CanvasEngine’s asset system. |
| struct | EntropyCanvas::ActiveCamera Tag component for the active camera. |
| Name | |
|---|---|
| using AssetOperationHandle< void > | VoidHandle |
| enum class uint8_t | VertexTier { Tangent = 1, Extended = 2, Basic = 0} Vertex format tier for GPU buffer allocation. |
| using AssetOperationHandle< AssetUploadResult > | UploadHandle |
| enum class uint8_t | TextureType { TextureCubeArray = 5, TextureCube = 3, Texture3D = 2, Texture2DArray = 4, Texture2D = 1, Texture1D = 0} Texture dimension type. |
| enum class uint8_t | TextureFormat { 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 class | SGLobeConfig { SG9, SG12} Spherical Gaussian lobe configuration. |
| using AssetOperationHandle< AssetResolveResult > | ResolveHandle |
| using AssetOperationHandle< std::vector< std::optional< AssetResolveResult > > > | ResolveBatchHandle |
| using EntropyEngine::Networking::PropertyValue | PropertyValue Property value variant for delta updates. |
| enum class | ProjectionType { Perspective, Orthographic} Camera projection type. |
| enum class | ProbeUpdatePriority { 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_t | MaterialPropertyType { 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_t | LightType { 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_t | DeliveryMethod { DirectFetch = 0, CanvasWebRTC = 2, CanvasHTTP = 1} Method for portal to fetch asset data. |
| enum class uint8_t | ContentType { Texture = 1, Sound = 2, Shader = 5, Scene = 3, Mesh = 0, Material = 4} Type of asset content. |
| using EntropyEngine::Networking::ComponentTypeHash | ComponentTypeHash Component type hash for identifying component types. |
| enum class | ComponentType { Transform, Rotator, ReflectionProbe, RainbowShift, Mesh, LightProbe, Light, Custom, Camera} Component types that can be synced from the server. |
| enum class | ComponentTrustLevel { External, Builtin, AppRegistered} Trust level for registered components. |
| enum class uint8_t | ColorSpace { sRGB = 1, Linear = 0} Color space for texture interpretation. |
| enum class | CameraRenderMode { Standard, Cubemap} Camera render mode - determines render target type. |
| enum class | AssetOpStatus { Running, Pending, Failed, Complete} Status of an async asset operation. |
| enum class | AssetOpError { 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::AssetId | AssetId Content-addressed asset identifier using SHA-256. |
Functions
Section titled “Functions”| 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. |
| MaterialPropertyType | getMaterialPropertyType(const MaterialPropertyValue & value) Get the MaterialPropertyType for a MaterialPropertyValue. |
| void | forceUSDPluginRegistryLink() 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. |
| void | RegisterCoreUSDTypes() |
Attributes
Section titled “Attributes”| Name | |
|---|---|
| USDPluginInitializer | s_initializer |
Types Documentation
Section titled “Types Documentation”using VoidHandle
Section titled “using VoidHandle”using EntropyCanvas::VoidHandle = AssetOperationHandle<void>;enum VertexTier
Section titled “enum VertexTier”| Enumerator | Value | Description |
|---|---|---|
| Tangent | 1 | Basic + tangent(vec4). |
| Extended | 2 | Tangent + uv2+uv3 packed + color(vec4). |
| Basic | 0 | position(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 UploadHandle
Section titled “using UploadHandle”using EntropyCanvas::UploadHandle = AssetOperationHandle<AssetUploadResult>;enum TextureType
Section titled “enum TextureType”| Enumerator | Value | Description |
|---|---|---|
| TextureCubeArray | 5 | |
| TextureCube | 3 | |
| Texture3D | 2 | |
| Texture2DArray | 4 | |
| Texture2D | 1 | |
| Texture1D | 0 |
Texture dimension type.
enum TextureFormat
Section titled “enum TextureFormat”| Enumerator | Value | Description |
|---|---|---|
| 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 SGLobeConfig
Section titled “enum SGLobeConfig”| Enumerator | Value | Description |
|---|---|---|
| SG9 | ||
| SG12 |
Spherical Gaussian lobe configuration.
using ResolveHandle
Section titled “using ResolveHandle”using EntropyCanvas::ResolveHandle = AssetOperationHandle<AssetResolveResult>;using ResolveBatchHandle
Section titled “using ResolveBatchHandle”using EntropyCanvas::ResolveBatchHandle = AssetOperationHandle<std::vector<std::optional<AssetResolveResult>>>;using PropertyValue
Section titled “using PropertyValue”using EntropyCanvas::PropertyValue = EntropyEngine::Networking::PropertyValue;Property value variant for delta updates.
Uses the canonical EntropyNetworking type for wire protocol compatibility.
enum ProjectionType
Section titled “enum ProjectionType”| Enumerator | Value | Description |
|---|---|---|
| Perspective | ||
| Orthographic |
Camera projection type.
enum ProbeUpdatePriority
Section titled “enum ProbeUpdatePriority”| Enumerator | Value | Description |
|---|---|---|
| Streaming | ||
| Static | ||
| OnDemand |
Probe volume update priority modes.
using PostProcessHandler
Section titled “using PostProcessHandler”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 MaterialReceivedCallback
Section titled “using MaterialReceivedCallback”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 MaterialPropertyValue
Section titled “using MaterialPropertyValue”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.
enum MaterialPropertyType
Section titled “enum MaterialPropertyType”| Enumerator | Value | Description |
|---|---|---|
| Vec4 | 3 | |
| Vec3 | 2 | |
| Vec2 | 1 | |
| Mat4 | 5 | |
| Mat3 | 4 | |
| Int | 6 | |
| Float | 0 | |
| AssetRef | 7 |
Get the type index of a MaterialPropertyValue.
using MaterialPropertyChangedCallback
Section titled “using MaterialPropertyChangedCallback”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)
enum LightType
Section titled “enum LightType”| Enumerator | Value | Description |
|---|---|---|
| Sphere | 1 | |
| Distant | 0 |
Light type enumeration (aligned with UsdLux).
using Hash256
Section titled “using Hash256”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 FetchHandle
Section titled “using FetchHandle”using EntropyCanvas::FetchHandle = AssetOperationHandle<std::vector<uint8_t>>;enum DeliveryMethod
Section titled “enum DeliveryMethod”| Enumerator | Value | Description |
|---|---|---|
| DirectFetch | 0 | |
| CanvasWebRTC | 2 | |
| CanvasHTTP | 1 |
Method for portal to fetch asset data.
enum ContentType
Section titled “enum ContentType”| Enumerator | Value | Description |
|---|---|---|
| Texture | 1 | |
| Sound | 2 | |
| Shader | 5 | |
| Scene | 3 | |
| Mesh | 0 | |
| Material | 4 |
Type of asset content.
using ComponentTypeHash
Section titled “using ComponentTypeHash”using EntropyCanvas::ComponentTypeHash = EntropyEngine::Networking::ComponentTypeHash;Component type hash for identifying component types.
Uses the canonical EntropyNetworking type for wire protocol compatibility.
enum ComponentType
Section titled “enum ComponentType”| Enumerator | Value | Description |
|---|---|---|
| Transform | ||
| Rotator | ||
| ReflectionProbe | ||
| RainbowShift | ||
| Mesh | ||
| LightProbe | ||
| Light | ||
| Custom | ||
| Camera |
Component types that can be synced from the server.
enum ComponentTrustLevel
Section titled “enum ComponentTrustLevel”| Enumerator | Value | Description |
|---|---|---|
| External | From network/external source, untrusted. | |
| Builtin | SDK registered, fully trusted for special processing. | |
| AppRegistered | App 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.
enum ColorSpace
Section titled “enum ColorSpace”| Enumerator | Value | Description |
|---|---|---|
| sRGB | 1 | |
| Linear | 0 |
Color space for texture interpretation.
enum CameraRenderMode
Section titled “enum CameraRenderMode”| Enumerator | Value | Description |
|---|---|---|
| Standard | ||
| Cubemap |
Camera render mode - determines render target type.
enum AssetOpStatus
Section titled “enum AssetOpStatus”| Enumerator | Value | Description |
|---|---|---|
| Running | ||
| Pending | ||
| Failed | ||
| Complete |
Status of an async asset operation.
enum AssetOpError
Section titled “enum AssetOpError”| Enumerator | Value | Description |
|---|---|---|
| Unknown | ||
| Timeout | ||
| NotFound | ||
| None | 0 | |
| NetworkError | ||
| InvalidSession | ||
| Cancelled | ||
| AlreadyInProgress |
Error codes for asset operations.
using AssetMetadataVariant
Section titled “using AssetMetadataVariant”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 AssetId
Section titled “using AssetId”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.
Functions Documentation
Section titled “Functions Documentation”function textureTypeToString
Section titled “function textureTypeToString”inline const char * textureTypeToString( TextureType type)Get a human-readable string for a TextureType.
function textureFormatToString
Section titled “function textureFormatToString”inline const char * textureFormatToString( TextureFormat format)Get a human-readable string for a TextureFormat.
function getMaterialPropertyType
Section titled “function getMaterialPropertyType”inline MaterialPropertyType getMaterialPropertyType( const MaterialPropertyValue & value)Get the MaterialPropertyType for a MaterialPropertyValue.
function forceUSDPluginRegistryLink
Section titled “function forceUSDPluginRegistryLink”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.
function deliveryMethodToString
Section titled “function deliveryMethodToString”inline const char * deliveryMethodToString( DeliveryMethod method)Get a human-readable string for a DeliveryMethod.
function contentTypeToString
Section titled “function contentTypeToString”inline const char * contentTypeToString( ContentType type)Get a human-readable string for a ContentType.
function colorSpaceToString
Section titled “function colorSpaceToString”inline const char * colorSpaceToString( ColorSpace colorSpace)Get a human-readable string for a ColorSpace.
function RegisterCoreUSDTypes
Section titled “function RegisterCoreUSDTypes”static void RegisterCoreUSDTypes()Attributes Documentation
Section titled “Attributes Documentation”variable s_initializer
Section titled “variable s_initializer”static USDPluginInitializer s_initializer;Updated on 2026-01-26 at 17:14:35 -0500