88 virtual bool setMetaData(PxInputStream& srcMetaData, PxInputStream& dstMetaData);
90 virtual bool convert(PxInputStream& srcStream, PxU32 srcSize, PxOutputStream& targetStream);
93 ConvX& operator=(
const ConvX&);
94 bool setMetaData(PxInputStream& inputStream, MetaDataType type);
97 void releaseMetaData();
98 const MetaData* loadMetaData(PxInputStream& inputStream, MetaDataType type);
99 const MetaData* getBinaryMetaData(MetaDataType type);
100 int getNbMetaClasses(MetaDataType type);
101 MetaClass* getMetaClass(
unsigned int i, MetaDataType type)
const;
102 MetaClass* getMetaClass(
const char* name, MetaDataType type)
const;
103 MetaClass* getMetaClass(PxConcreteType::Enum concreteType, MetaDataType type);
104 MetaData* mMetaData_Src;
105 MetaData* mMetaData_Dst;
109 bool convert(
const void* buffer,
int fileSize);
110 void resetConvexFlags();
111 void _enumerateFields(
const MetaClass* mc, ExtraDataEntry2* entries,
int& nb,
int baseOffset, MetaDataType type)
const;
112 void _enumerateExtraData(
const char* address,
const MetaClass* mc, ExtraDataEntry* entries,
int& nb,
int offset, MetaDataType type)
const;
113 PxU64 read64(
const void*& buffer);
114 int read32(
const void*& buffer);
115 short read16(
const void*& buffer);
116 bool convertClass(
const char* buffer,
const MetaClass* mc,
int offset);
117 const char* convertExtraData_Array(
const char* Address,
const char* lastAddress,
const char* objectAddress,
const ExtraDataEntry& ed);
118 const char* convertExtraData_Ptr(
const char* Address,
const char* lastAddress,
const PxMetaDataEntry& entry,
int count,
int ptrSize_Src,
int ptrSize_Dst);
119 const char* convertExtraData_Handle(
const char* Address,
const char* lastAddress,
const PxMetaDataEntry& entry,
int count);
120 int getConcreteType(
const char* buffer);
121 bool convertCollection(
const void* buffer,
int fileSize,
int nbObjects);
122 const void* convertManifestTable(
const void* buffer,
int& fileSize);
123 const void* convertImportReferences(
const void* buffer,
int& fileSize);
124 const void* convertExportReferences(
const void* buffer,
int& fileSize);
125 const void* convertInternalReferences(
const void* buffer,
int& fileSize);
126 const void* convertReferenceTables(
const void* buffer,
int& fileSize,
int& nbObjectsInCollection);
127 bool checkPaddingBytes(
const char* buffer,
int byteCount);
130 PsArray<bool> mConvexFlags;
132 const char* alignStream(
const char* buffer,
int alignment=ALIGN_DEFAULT);
133 void alignTarget(
int alignment);
135 char mZeros[CONVX_ZERO_BUFFER_SIZE];
137 bool registerUnion(
const char* name);
138 bool registerUnionType(
const char* unionName,
const char* typeName,
int typeValue);
139 const char* getTypeName(
const char* unionName,
int typeValue);
141 PsArray<Union> mUnions;
143 void setNullPtr(
bool);
144 void setNoOutput(
bool);
145 bool initOutput(PxOutputStream& targetStream);
147 int getCurrentOutputSize();
148 void output(
short value);
149 void output(
int value);
150 void output(PxU64 value);
151 void output(
const char* buffer,
int nbBytes);
152 void convert8 (
const char* src,
const PxMetaDataEntry& entry,
const PxMetaDataEntry& dstEntry);
153 void convertPad8 (
const char* src,
const PxMetaDataEntry& entry,
const PxMetaDataEntry& dstEntry);
154 void convert16 (
const char* src,
const PxMetaDataEntry& entry,
const PxMetaDataEntry& dstEntry);
155 void convert32 (
const char* src,
const PxMetaDataEntry& entry,
const PxMetaDataEntry& dstEntry);
156 void convert64 (
const char* src,
const PxMetaDataEntry& entry,
const PxMetaDataEntry& dstEntry);
157 void convertFloat(
const char* src,
const PxMetaDataEntry& entry,
const PxMetaDataEntry& dstEntry);
158 void convertPtr (
const char* src,
const PxMetaDataEntry& entry,
const PxMetaDataEntry& dstEntry);
159 void convertHandle16(
const char* src,
const PxMetaDataEntry& entry,
const PxMetaDataEntry& dstEntry);
160 PxOutputStream* mOutStream;
170 void resetNbErrors();
171 int getNbErrors()
const;
178 bool mPerformConversion;
181 void exportIntAsPtr(
int value);
182 void exportInt(
int value);
183 void exportInt64(PxU64 value);
184 PointerRemap mPointerRemap;
185 PointerRemap* mPointerActiveRemap;
186 PxU32 mPointerRemapCounter;
187 Handle16Remap mHandle16Remap;
188 Handle16Remap* mHandle16ActiveRemap;
189 PxU16 mHandle16RemapCounter;
191 friend class MetaData;
192 friend struct MetaClass;
virtual bool setMetaData(PxInputStream &srcMetaData, PxInputStream &dstMetaData)
Setups source and target meta-data streams.
Definition SnConvX.cpp:91
virtual bool convert(PxInputStream &srcStream, PxU32 srcSize, PxOutputStream &targetStream)
Converts binary stream from source platform to target platform.
Definition SnConvX.cpp:115