Skip to content

EntropyCanvas::Schema

Name
classEntropyCanvas::Schema::TypeInfo
Runtime type information container with field introspection.
structEntropyCanvas::Schema::TypeID
A cross-platform type identifier with stable hashing and comparison.
structEntropyCanvas::Schema::Result
Result type for operations that may fail.
structEntropyCanvas::Schema::PropertyDefinition
Property definition within a component schema.
structEntropyCanvas::Schema::FieldInfo
Information about a reflected field in a type.
classEntropyCanvas::Schema::ComponentSchemaRegistry
Thread-safe registry for component schemas.
structEntropyCanvas::Schema::ComponentSchema
Component schema definition.
Name
enum classPropertyType { }
Property type enumeration.
using PropertyHashComponentTypeHash
Type alias for component type identification.
Name
std::optional< PropertyType >typeIdToPropertyType(TypeID typeId)
Map a TypeID from the reflection system to a PropertyType for networking.
size_tregisterBuiltinSchemas(ComponentSchemaRegistry & registry)
Register all built-in Canvas component schemas with a registry.
size_tpropertyTypeSize(PropertyType type)
Get the size in bytes of a PropertyType.
ComponentTypeHashgetTransformTypeHash()
const Result< ComponentSchema > &getTransformSchema()
Get the Transform component schema (cached, reflection-based).
ComponentTypeHashgetRotatorTypeHash()
const Result< ComponentSchema > &getRotatorSchema()
Get the Rotator component schema (cached, reflection-based).
ComponentTypeHashgetReflectionProbeTypeHash()
const Result< ComponentSchema > &getReflectionProbeSchema()
Get the ReflectionProbe component schema (cached, reflection-based).
ComponentTypeHashgetRainbowShiftTypeHash()
const Result< ComponentSchema > &getRainbowShiftSchema()
Get the RainbowShift component schema (cached, reflection-based).
ComponentTypeHashgetMeshTypeHash()
const Result< ComponentSchema > &getMeshSchema()
Get the Mesh component schema (cached, reflection-based).
ComponentTypeHashgetLightTypeHash()
const Result< ComponentSchema > &getLightSchema()
Get the Light component schema (cached, reflection-based).
ComponentTypeHashgetLightProbeTypeHash()
const Result< ComponentSchema > &getLightProbeSchema()
Get the LightProbe component schema (cached, reflection-based).
ComponentTypeHashgetCameraTypeHash()
const Result< ComponentSchema > &getCameraSchema()
Get the Camera component schema (cached, reflection-based).
std::vector< Result< ComponentSchema > >getAllBuiltinSchemas()
Get all built-in component schemas for the Canvas ecosystem.
template <typename T >
TypeID
createTypeId()
template <typename T >
Result< ComponentSchema >
createSchemaFromReflection()
Generate a ComponentSchema from a reflected type T.
Name
uint32_tkSchemaVersion
const char *kAppId
EnumeratorValueDescription

Property type enumeration.

Matches the PropertyType enum in entropy.capnp

using EntropyEngine::Networking::ComponentTypeHash = PropertyHash;

Type alias for component type identification.

ComponentTypeHash identifies a component type across applications. Computed from appId, componentName, schemaVersion, and structural hash.

Uses the same 128-bit hash structure as PropertyHash for consistency.

inline std::optional< PropertyType > typeIdToPropertyType(
TypeID typeId
)

Map a TypeID from the reflection system to a PropertyType for networking.

Returns nullopt if the type is not supported for network serialization.

inline size_t registerBuiltinSchemas(
ComponentSchemaRegistry & registry
)

Register all built-in Canvas component schemas with a registry.

Parameters:

Return: Number of schemas successfully registered

inline size_t propertyTypeSize(
PropertyType type
)

Get the size in bytes of a PropertyType.

inline ComponentTypeHash getTransformTypeHash()
inline const Result< ComponentSchema > & getTransformSchema()

Get the Transform component schema (cached, reflection-based).

inline ComponentTypeHash getRotatorTypeHash()
inline const Result< ComponentSchema > & getRotatorSchema()

Get the Rotator component schema (cached, reflection-based).

inline ComponentTypeHash getReflectionProbeTypeHash()
inline const Result< ComponentSchema > & getReflectionProbeSchema()

Get the ReflectionProbe component schema (cached, reflection-based).

inline ComponentTypeHash getRainbowShiftTypeHash()
inline const Result< ComponentSchema > & getRainbowShiftSchema()

Get the RainbowShift component schema (cached, reflection-based).

inline ComponentTypeHash getMeshTypeHash()
inline const Result< ComponentSchema > & getMeshSchema()

Get the Mesh component schema (cached, reflection-based).

inline ComponentTypeHash getLightTypeHash()
inline const Result< ComponentSchema > & getLightSchema()

Get the Light component schema (cached, reflection-based).

inline ComponentTypeHash getLightProbeTypeHash()
inline const Result< ComponentSchema > & getLightProbeSchema()

Get the LightProbe component schema (cached, reflection-based).

inline ComponentTypeHash getCameraTypeHash()
inline const Result< ComponentSchema > & getCameraSchema()

Get the Camera component schema (cached, reflection-based).

inline std::vector< Result< ComponentSchema > > getAllBuiltinSchemas()

Get all built-in component schemas for the Canvas ecosystem.

Return: Vector of Result for all built-in components

template <typename T >
inline TypeID createTypeId()
template <typename T >
Result< ComponentSchema > createSchemaFromReflection()

Generate a ComponentSchema from a reflected type T.

Template Parameters:

  • T Component type with reflection metadata

Return: Result containing the generated schema, or error if generation fails

Uses ENTROPY_REGISTER_TYPE and ENTROPY_FIELD metadata to automatically build property definitions with correct names, types, and offsets.

uint32_t kSchemaVersion = 1;
const char * kAppId = "CanvasEngine";

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