From 3dfe2108cfab31ba3ee5527e217d0d8e99a51162 Mon Sep 17 00:00:00 2001
From: git perforce import user
Date: Tue, 25 Oct 2016 12:29:14 -0600
Subject: Initial commit: PhysX 3.4.0 Update @ 21294896 APEX 1.4.0 Update @
21275617
[CL 21300167]
---
.../PhysXAPI/files/PxMetaData_8h-source.html | 194 +++++++++++++++++++++
1 file changed, 194 insertions(+)
create mode 100644 PhysX_3.4/Documentation/PhysXAPI/files/PxMetaData_8h-source.html
(limited to 'PhysX_3.4/Documentation/PhysXAPI/files/PxMetaData_8h-source.html')
diff --git a/PhysX_3.4/Documentation/PhysXAPI/files/PxMetaData_8h-source.html b/PhysX_3.4/Documentation/PhysXAPI/files/PxMetaData_8h-source.html
new file mode 100644
index 00000000..cc68cdfc
--- /dev/null
+++ b/PhysX_3.4/Documentation/PhysXAPI/files/PxMetaData_8h-source.html
@@ -0,0 +1,194 @@
+
+
+ PxMetaData.h
Go to the documentation of this file.
00001 // This code contains NVIDIA Confidential Information and is disclosed to you +00002 // under a form of NVIDIA software license agreement provided separately to you. +00003 // +00004 // Notice +00005 // NVIDIA Corporation and its licensors retain all intellectual property and +00006 // proprietary rights in and to this software and related documentation and +00007 // any modifications thereto. Any use, reproduction, disclosure, or +00008 // distribution of this software and related documentation without an express +00009 // license agreement from NVIDIA Corporation is strictly prohibited. +00010 // +00011 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +00012 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +00013 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +00014 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +00015 // +00016 // Information and code furnished is believed to be accurate and reliable. +00017 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +00018 // information or for any infringement of patents or other rights of third parties that may +00019 // result from its use. No license is granted by implication or otherwise under any patent +00020 // or patent rights of NVIDIA Corporation. Details are subject to change without notice. +00021 // This code supersedes and replaces all information previously supplied. +00022 // NVIDIA Corporation products are not authorized for use as critical +00023 // components in life support devices or systems without express written approval of +00024 // NVIDIA Corporation. +00025 // +00026 // Copyright (c) 2008-2016 NVIDIA Corporation. All rights reserved. +00027 // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. +00028 // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. +00029 +00030 +00031 #ifndef PX_PHYSICS_METADATA_H +00032 #define PX_PHYSICS_METADATA_H +00033 +00037 #include "foundation/Px.h" +00038 #include "foundation/PxIO.h" +00039 #include "PxMetaDataFlags.h" +00040 +00041 +00042 #if !PX_DOXYGEN +00043 namespace physx +00044 { +00045 #endif +00046 +00052 struct PxMetaDataEntry +00053 { +00054 const char* type; +00055 const char* name; +00056 PxU32 offset; +00057 PxU32 size; +00058 PxU32 count; +00059 PxU32 offsetSize; +00060 PxU32 flags; +00061 PxU32 alignment; +00062 }; +00063 +00064 #define PX_STORE_METADATA(stream, metaData) stream.write(&metaData, sizeof(PxMetaDataEntry)) +00065 +00066 #define PX_SIZE_OF(Class, Member) sizeof((reinterpret_cast<Class*>(0))->Member) +00067 +00071 #define PX_DEF_BIN_METADATA_ITEM(stream, Class, type, name, flags) \ +00072 { \ +00073 PxMetaDataEntry tmp = { #type, #name, PxU32(PX_OFFSET_OF_RT(Class, name)), PX_SIZE_OF(Class, name), \ +00074 1, 0, flags, 0}; \ +00075 PX_STORE_METADATA(stream, tmp); \ +00076 } +00077 +00082 #define PX_DEF_BIN_METADATA_ITEMS(stream, Class, type, name, flags, count) \ +00083 { \ +00084 PxMetaDataEntry tmp = { #type, #name, PxU32(PX_OFFSET_OF_RT(Class, name)), PX_SIZE_OF(Class, name), \ +00085 count, 0, flags, 0}; \ +00086 PX_STORE_METADATA(stream, tmp); \ +00087 } +00088 +00094 #define PX_DEF_BIN_METADATA_ITEMS_AUTO(stream, Class, type, name, flags) \ +00095 { \ +00096 PxMetaDataEntry tmp = { #type, #name, PxU32(PX_OFFSET_OF_RT(Class, name)), PX_SIZE_OF(Class, name), \ +00097 sizeof((reinterpret_cast<Class*>(0))->name)/sizeof(type), 0, flags, 0}; \ +00098 PX_STORE_METADATA(stream, tmp); \ +00099 } +00100 +00104 #define PX_DEF_BIN_METADATA_CLASS(stream, Class) \ +00105 { \ +00106 PxMetaDataEntry tmp = { #Class, 0, 0, sizeof(Class), 0, 0, PxMetaDataFlag::eCLASS, 0 }; \ +00107 PX_STORE_METADATA(stream, tmp); \ +00108 } +00109 +00113 #define PX_DEF_BIN_METADATA_VCLASS(stream, Class) \ +00114 { \ +00115 PxMetaDataEntry tmp = { #Class, 0, 0, sizeof(Class), 0, 0, PxMetaDataFlag::eCLASS|PxMetaDataFlag::eVIRTUAL, 0}; \ +00116 PX_STORE_METADATA(stream, tmp); \ +00117 } +00118 +00122 #define PX_DEF_BIN_METADATA_TYPEDEF(stream, newType, oldType) \ +00123 { \ +00124 PxMetaDataEntry tmp = { #newType, #oldType, 0, 0, 0, 0, PxMetaDataFlag::eTYPEDEF, 0 }; \ +00125 PX_STORE_METADATA(stream, tmp); \ +00126 } +00127 +00131 #define PX_DEF_BIN_METADATA_BASE_CLASS(stream, Class, BaseClass) \ +00132 { \ +00133 Class* myClass = reinterpret_cast<Class*>(42); \ +00134 BaseClass* s = static_cast<BaseClass*>(myClass); \ +00135 const PxU32 offset = PxU32(size_t(s) - size_t(myClass)); \ +00136 PxMetaDataEntry tmp = { #Class, #BaseClass, offset, sizeof(Class), 0, 0, PxMetaDataFlag::eCLASS, 0 }; \ +00137 PX_STORE_METADATA(stream, tmp); \ +00138 } +00139 +00143 #define PX_DEF_BIN_METADATA_UNION(stream, Class, name) \ +00144 { \ +00145 PxMetaDataEntry tmp = { #Class, 0, PxU32(PX_OFFSET_OF_RT(Class, name)), PX_SIZE_OF(Class, name), \ +00146 1, 0, PxMetaDataFlag::eUNION, 0 }; \ +00147 PX_STORE_METADATA(stream, tmp); \ +00148 } +00149 +00153 #define PX_DEF_BIN_METADATA_UNION_TYPE(stream, Class, type, enumValue) \ +00154 { \ +00155 PxMetaDataEntry tmp = { #Class, #type, enumValue, 0, 0, 0, PxMetaDataFlag::eUNION, 0 }; \ +00156 PX_STORE_METADATA(stream, tmp); \ +00157 } +00158 +00162 #define PX_DEF_BIN_METADATA_EXTRA_ITEM(stream, Class, type, control, align) \ +00163 { \ +00164 PxMetaDataEntry tmp = { #type, 0, PxU32(PX_OFFSET_OF_RT(Class, control)), sizeof(type), 0, PxU32(PX_SIZE_OF(Class, control)), \ +00165 PxMetaDataFlag::eEXTRA_DATA|PxMetaDataFlag::eEXTRA_ITEM, align }; \ +00166 PX_STORE_METADATA(stream, tmp); \ +00167 } +00168 +00172 #define PX_DEF_BIN_METADATA_EXTRA_ITEMS(stream, Class, type, control, count, flags, align) \ +00173 { \ +00174 PxMetaDataEntry tmp = { #type, 0, PxU32(PX_OFFSET_OF_RT(Class, control)), PxU32(PX_SIZE_OF(Class, control)), \ +00175 PxU32(PX_OFFSET_OF_RT(Class, count)), PxU32(PX_SIZE_OF(Class, count)), \ +00176 PxMetaDataFlag::eEXTRA_DATA|PxMetaDataFlag::eEXTRA_ITEMS|flags, align }; \ +00177 PX_STORE_METADATA(stream, tmp); \ +00178 } +00179 +00185 #define PX_DEF_BIN_METADATA_EXTRA_ITEMS_MASKED_CONTROL(stream, Class, type, control, controlMask ,count, flags, align) \ +00186 { \ +00187 PxMetaDataEntry tmp = { #type, 0, PxU32(PX_OFFSET_OF_RT(Class, control)), PxU32(PX_SIZE_OF(Class, control)), \ +00188 PxU32(PX_OFFSET_OF_RT(Class, count)), PxU32(PX_SIZE_OF(Class, count)), \ +00189 PxMetaDataFlag::eCONTROL_MASK|PxMetaDataFlag::eEXTRA_DATA|PxMetaDataFlag::eEXTRA_ITEMS|flags|(controlMask & PxMetaDataFlag::eCONTROL_MASK_RANGE) << 16, \ +00190 align}; \ +00191 PX_STORE_METADATA(stream, tmp); \ +00192 } +00193 +00198 #define PX_DEF_BIN_METADATA_EXTRA_ARRAY(stream, Class, type, dyn_count, align, flags) \ +00199 { \ +00200 PxMetaDataEntry tmp = { #type, 0, PxU32(PX_OFFSET_OF_RT(Class, dyn_count)), PX_SIZE_OF(Class, dyn_count), align, 0, \ +00201 PxMetaDataFlag::eEXTRA_DATA|flags, align }; \ +00202 PX_STORE_METADATA(stream, tmp); \ +00203 } +00204 +00208 #define PX_DEF_BIN_METADATA_EXTRA_NAME(stream, Class, control, align) \ +00209 { \ +00210 PxMetaDataEntry tmp = { "char", "string", 0, 0, 0, 0, PxMetaDataFlag::eEXTRA_DATA|PxMetaDataFlag::eEXTRA_NAME, align }; \ +00211 PX_STORE_METADATA(stream, tmp); \ +00212 } +00213 +00217 #define PX_DEF_BIN_METADATA_EXTRA_ALIGN(stream, Class, align) \ +00218 { \ +00219 PxMetaDataEntry tmp = { "PxU8", "Alignment", 0, 0, 0, 0, PxMetaDataFlag::eEXTRA_DATA|PxMetaDataFlag::eALIGNMENT, align}; \ +00220 PX_STORE_METADATA(stream, tmp); \ +00221 } +00222 +00223 #if !PX_DOXYGEN +00224 } // namespace physx +00225 #endif +00226 +00228 #endif +