RavEngine
Loading...
Searching...
No Matches
physx::Sn::DeserializationContext Class Reference
Inheritance diagram for physx::Sn::DeserializationContext:
[legend]
Collaboration diagram for physx::Sn::DeserializationContext:
[legend]

Public Member Functions

 DeserializationContext (const ManifestEntry *manifestTable, const ImportReference *importReferences, PxU8 *objectDataAddress, const InternalPtrRefMap &internalPtrReferencesMap, const InternalHandle16RefMap &internalHandle16ReferencesMap, const Cm::Collection *externalRefs, PxU8 *extraData)
 
virtual PxBase * resolveReference (PxU32 kind, size_t reference) const
 Retrieves a pointer to a deserialized PxBase object given a corresponding deserialized reference value.
 
- Public Member Functions inherited from physx::PxDeserializationContext
template<typename T >
void translatePxBase (T *&base)
 Helper function to update PxBase pointer on deserialization.
 
PX_INLINE void readName (const char *&name)
 Helper function to read a name from the extra data during deserialization.
 
template<typename T >
PX_INLINE T * readExtraData (PxU32 count=1)
 Function to read extra data during deserialization.
 
template<typename T , PxU32 alignment>
PX_INLINE T * readExtraData (PxU32 count=1)
 Function to read extra data during deserialization optionally aligning the extra data stream before reading.
 
PX_INLINE void alignExtraData (PxU32 alignment=PX_SERIAL_ALIGN)
 Function to align the extra data stream to a power of 2 alignment.
 
- Public Member Functions inherited from physx::PxUserAllocated
PX_INLINE void * operator new (size_t, void *address)
 
PX_INLINE void operator delete (void *, void *)
 
template<typename Alloc >
PX_INLINE void * operator new (size_t size, Alloc alloc, const char *fileName, int line)
 
template<typename Alloc >
PX_INLINE void * operator new (size_t size, size_t, Alloc alloc, const char *fileName, int line)
 
template<typename Alloc >
PX_INLINE void * operator new[] (size_t size, Alloc alloc, const char *fileName, int line)
 
template<typename Alloc >
PX_INLINE void * operator new[] (size_t size, size_t, Alloc alloc, const char *fileName, int line)
 
template<typename Alloc >
PX_INLINE void operator delete (void *ptr, Alloc alloc, const char *fileName, int line)
 
template<typename Alloc >
PX_INLINE void operator delete[] (void *ptr, Alloc alloc, const char *fileName, int line)
 
PX_INLINE void operator delete (void *ptr)
 
PX_INLINE void operator delete[] (void *ptr)
 

Additional Inherited Members

- Protected Attributes inherited from physx::PxDeserializationContext
PxU8 * mExtraDataAddress
 

Member Function Documentation

◆ resolveReference()

PxBase * DeserializationContext::resolveReference ( PxU32  kind,
size_t  reference 
) const
virtual

Retrieves a pointer to a deserialized PxBase object given a corresponding deserialized reference value.

This method is assumed to be called in the implementation of PxSerializer::createObject in order to update reference values on deserialization.

To update a PxBase reference the corresponding deserialized pointer value needs to be provided in order to retrieve the location of the corresponding deserialized PxBase object. (PxDeserializationContext::translatePxBase simplifies this common case).

For other kinds of references the reverence values need to be updated by deduction given the corresponding PxBase instance.

Parameters
[in]kindWhat kind of reference this is (PX_SERIAL_REF_KIND_PXBASE, PX_SERIAL_REF_KIND_MATERIAL_IDX or custom kind)
[in]referenceDeserialized reference value
Returns
PxBase object associated with the reference value
See also
PxSerializationContext::registerReference, PX_SERIAL_REF_KIND_PXBASE, PX_SERIAL_REF_KIND_MATERIAL_IDX, translatePxBase

Implements physx::PxDeserializationContext.


The documentation for this class was generated from the following files: