![]() |
ezEngine Release 26.3
|
Specialized context for tracking and applying native object changes to abstract object graphs. More...
#include <ApplyNativePropertyChangesContext.h>

Public Member Functions | |
| ezApplyNativePropertyChangesContext (ezRttiConverterContext &ref_source, const ezAbstractObjectGraph &originalGraph) | |
| virtual ezUuid | GenerateObjectGuid (const ezUuid &parentGuid, const ezAbstractProperty *pProp, ezVariant index, void *pObject) const override |
| Generates a guid for a new object. Default implementation generates stable guids derived from parentGuid + property name + index and ignores the address of pObject. | |
Public Member Functions inherited from ezRttiConverterContext | |
| virtual void | Clear () |
| Clears all cached objects and resets the context state. | |
| virtual ezInternal::NewInstance< void > | CreateObject (const ezUuid &guid, const ezRTTI *pRtti) |
| virtual void | DeleteObject (const ezUuid &guid) |
| virtual void | RegisterObject (const ezUuid &guid, const ezRTTI *pRtti, void *pObject) |
| virtual void | UnregisterObject (const ezUuid &guid) |
| virtual ezRttiConverterObject | GetObjectByGUID (const ezUuid &guid) const |
| virtual ezUuid | GetObjectGUID (const ezRTTI *pRtti, const void *pObject) const |
| virtual const ezRTTI * | FindTypeByName (ezStringView sName) const |
| template<typename T > | |
| void | GetObjectsByType (ezDynamicArray< T * > &out_objects, ezDynamicArray< ezUuid > *out_pUuids=nullptr) |
| virtual ezUuid | EnqueObject (const ezUuid &guid, const ezRTTI *pRtti, void *pObject) |
| virtual ezRttiConverterObject | DequeueObject () |
| virtual void | OnUnknownTypeError (ezStringView sTypeName) |
Additional Inherited Members | |
Protected Attributes inherited from ezRttiConverterContext | |
| ezHashTable< ezUuid, ezRttiConverterObject > | m_GuidToObject |
| ezHashTable< const void *, ezUuid > | m_ObjectToGuid |
| ezSet< ezUuid > | m_QueuedObjects |
Specialized context for tracking and applying native object changes to abstract object graphs.
This context enables a sophisticated bidirectional synchronization workflow between native C++ objects and their serialized representations in ezAbstractObjectGraph form. It ensures that modifications made to native objects can be properly tracked and applied back to the abstract representation while maintaining object identity through consistent GUID generation.
The key capability is generating GUIDs for native objects that exactly match the GUIDs used in the original abstract object graph. This allows the system to correlate changes made to native objects with their counterparts in the serialized form.
Typical workflow:
This is particularly useful for:
|
overridevirtual |
Generates a guid for a new object. Default implementation generates stable guids derived from parentGuid + property name + index and ignores the address of pObject.
Reimplemented from ezRttiConverterContext.