feat(physics): wire physx sdk into build
This commit is contained in:
282
engine/third_party/physx/source/common/include/omnipvd/CmOmniPvdAutoGenSetData.h
vendored
Normal file
282
engine/third_party/physx/source/common/include/omnipvd/CmOmniPvdAutoGenSetData.h
vendored
Normal file
@@ -0,0 +1,282 @@
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions
|
||||
// are met:
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above copyright
|
||||
// notice, this list of conditions and the following disclaimer in the
|
||||
// documentation and/or other materials provided with the distribution.
|
||||
// * Neither the name of NVIDIA CORPORATION nor the names of its
|
||||
// contributors may be used to endorse or promote products derived
|
||||
// from this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
|
||||
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
||||
// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
// Copyright (c) 2008-2025 NVIDIA Corporation. All rights reserved.
|
||||
// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
|
||||
// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
|
||||
|
||||
|
||||
//
|
||||
// This header provides macros to register PVD object instances, to set PVD attribute
|
||||
// values etc. This only works in combination with a registration structure that was
|
||||
// defined using the logic in CmOmniPvdAutoGenCreateRegistrationStruct.h.
|
||||
// OMNI_PVD_GET_WRITER and OMNI_PVD_GET_REGISTRATION_DATA have to be defined before
|
||||
// including this header. These two macros need to fetch and assign the pointer to
|
||||
// the OmniPvdWriter instance and the registration structure instance respectively.
|
||||
// See CmOmniPvdAutoGenCreateRegistrationStruct.h for a more detailed overview of the
|
||||
// whole approach.
|
||||
//
|
||||
|
||||
|
||||
#if PX_SUPPORT_OMNI_PVD
|
||||
|
||||
//
|
||||
// It is recommended to use this macro when multiple PVD attributes get written
|
||||
// in one go since the writer and registration structure is then fetched once only.
|
||||
//
|
||||
// Note: has to be paired with OMNI_PVD_WRITE_SCOPE_END
|
||||
//
|
||||
// writer: a pointer to the OmniPvdWriter instance will get assigned to a variable
|
||||
// named "writer"
|
||||
// regData: a pointer to the registration structure instance will get assigned to
|
||||
// a variable named "regData"
|
||||
//
|
||||
// General usage would look like this:
|
||||
//
|
||||
// OMNI_PVD_WRITE_SCOPE_BEGIN(writer, regData)
|
||||
// OMNI_PVD_SET_EXPLICIT(writer, regData, ...)
|
||||
// OMNI_PVD_SET_EXPLICIT(writer, regData, ...)
|
||||
// ...
|
||||
// OMNI_PVD_WRITE_SCOPE_END
|
||||
//
|
||||
#define OMNI_PVD_WRITE_SCOPE_BEGIN(writer, regData) \
|
||||
\
|
||||
OMNI_PVD_GET_WRITER(writer) \
|
||||
if (writer != NULL) \
|
||||
{ \
|
||||
OMNI_PVD_GET_REGISTRATION_DATA(regData)
|
||||
|
||||
//
|
||||
// See OMNI_PVD_WRITE_SCOPE_BEGIN for more info.
|
||||
//
|
||||
#define OMNI_PVD_WRITE_SCOPE_END \
|
||||
\
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Create a PVD object instance using the provided pointers to the writer and registration
|
||||
// structure instance.
|
||||
//
|
||||
// See OMNI_PVD_SET_EXPLICIT and OMNI_PVD_SET for a description of the parameters.
|
||||
//
|
||||
#define OMNI_PVD_CREATE_EXPLICIT(writer, regData, contextHandle, classID, objectRef) \
|
||||
\
|
||||
PX_ASSERT(writer); \
|
||||
PX_ASSERT(regData); \
|
||||
regData->pvd##classID.createInstance(*writer, contextHandle, objectRef);
|
||||
|
||||
|
||||
//
|
||||
// Create a PVD object instance.
|
||||
//
|
||||
// Note: if attribute values are to be set directly after the object instance registration,
|
||||
// it is recommended to use OMNI_PVD_WRITE_SCOPE_BEGIN & OMNI_PVD_CREATE_EXPLICIT etc. instead
|
||||
//
|
||||
// See OMNI_PVD_SET_EXPLICIT and OMNI_PVD_SET for a description of the parameters.
|
||||
//
|
||||
#define OMNI_PVD_CREATE(contextHandle, classID, objectRef) \
|
||||
\
|
||||
{ \
|
||||
OMNI_PVD_WRITE_SCOPE_BEGIN(pvdWriter, pvdRegData) \
|
||||
OMNI_PVD_CREATE_EXPLICIT(pvdWriter, pvdRegData, contextHandle, classID, objectRef); \
|
||||
OMNI_PVD_WRITE_SCOPE_END \
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Destroy a PVD object instance using the provided pointer to the writer instance.
|
||||
//
|
||||
// See OMNI_PVD_SET_EXPLICIT and OMNI_PVD_SET for a description of the parameters.
|
||||
//
|
||||
#define OMNI_PVD_DESTROY_EXPLICIT(writer, regData, contextHandle, classID, objectRef) \
|
||||
\
|
||||
PX_ASSERT(writer); \
|
||||
PX_ASSERT(regData); \
|
||||
regData->pvd##classID.destroyInstance(*writer, contextHandle, objectRef);
|
||||
|
||||
|
||||
//
|
||||
// Destroy a PVD object instance.
|
||||
//
|
||||
// See OMNI_PVD_SET_EXPLICIT and OMNI_PVD_SET for a description of the parameters.
|
||||
//
|
||||
#define OMNI_PVD_DESTROY(contextHandle, classID, objectRef) \
|
||||
\
|
||||
{ \
|
||||
OMNI_PVD_WRITE_SCOPE_BEGIN(pvdWriter, pvdRegData) \
|
||||
OMNI_PVD_DESTROY_EXPLICIT(pvdWriter, pvdRegData, contextHandle, classID, objectRef); \
|
||||
OMNI_PVD_WRITE_SCOPE_END \
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Set a PVD attribute value using the provided pointers to the writer and registration
|
||||
// structure instance.
|
||||
//
|
||||
// writer: the variable named "writer" has to hold a pointer to the OmniPvdWriter instance
|
||||
// regData: the variable named "regData" has to hold a pointer to the registration
|
||||
// structure
|
||||
//
|
||||
// See OMNI_PVD_SET for a description of the other parameters.
|
||||
//
|
||||
#define OMNI_PVD_SET_EXPLICIT(writer, regData, contextHandle, classID, attributeID, objectRef, valueRef) \
|
||||
\
|
||||
PX_ASSERT(writer); \
|
||||
PX_ASSERT(regData); \
|
||||
regData->pvd##classID.set_##attributeID##_(*writer, contextHandle, objectRef, valueRef);
|
||||
|
||||
|
||||
//
|
||||
// Set a PVD attribute value.
|
||||
//
|
||||
// Note: if multiple attribute values should get set in a row, it is recommended
|
||||
// to use OMNI_PVD_WRITE_SCOPE_BEGIN & OMNI_PVD_SET_EXPLICIT etc. instead
|
||||
//
|
||||
// contextHandle: the handle of the context the object instance belongs to
|
||||
// classID: the name of the class (as defined in OMNI_PVD_CLASS_BEGIN() etc.) the attribute
|
||||
// belongs to
|
||||
// attributeID: the name of the attribute (as defined in OMNI_PVD_ATTRIBUTE() etc.) to set the
|
||||
// value for
|
||||
// objectRef: reference to the class instance to set the attribute for (for untyped classes this shall be
|
||||
// a reference to a OmniPvdObjectHandle. For typed classes, the pointer value will be used as the
|
||||
// object handle value).
|
||||
// valueRef: a reference to a variable that holds the value to set the attribute to
|
||||
//
|
||||
#define OMNI_PVD_SET(contextHandle, classID, attributeID, objectRef, valueRef) \
|
||||
\
|
||||
{ \
|
||||
OMNI_PVD_WRITE_SCOPE_BEGIN(pvdWriter, pvdRegData) \
|
||||
OMNI_PVD_SET_EXPLICIT(pvdWriter, pvdRegData, contextHandle, classID, attributeID, objectRef, valueRef) \
|
||||
OMNI_PVD_WRITE_SCOPE_END \
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Set PVD array attribute values (variable size array) using the provided pointers to the writer and registration
|
||||
// structure instance.
|
||||
//
|
||||
// valuesPtr: pointer to the array data to set the attribute to
|
||||
// valueCount: number of entries in valuePtr
|
||||
//
|
||||
// See OMNI_PVD_SET for a description of the other parameters.
|
||||
//
|
||||
#define OMNI_PVD_SET_ARRAY_EXPLICIT(writer, regData, contextHandle, classID, attributeID, objectRef, valuesPtr, valueCount) \
|
||||
\
|
||||
PX_ASSERT(writer); \
|
||||
PX_ASSERT(regData); \
|
||||
regData->pvd##classID.set_##attributeID##_(*writer, contextHandle, objectRef, valuesPtr, valueCount);
|
||||
|
||||
|
||||
//
|
||||
// Set PVD array attribute values (variable size array).
|
||||
//
|
||||
// Note: if multiple attribute values should get set in a row, it is recommended
|
||||
// to use OMNI_PVD_WRITE_SCOPE_BEGIN & OMNI_PVD_SET_EXPLICIT etc. instead
|
||||
//
|
||||
// See OMNI_PVD_SET_ARRAY_EXPLICIT for a description of the parameters.
|
||||
//
|
||||
#define OMNI_PVD_SET_ARRAY(contextHandle, classID, attributeID, objectRef, valuesPtr, valueCount) \
|
||||
\
|
||||
{ \
|
||||
OMNI_PVD_WRITE_SCOPE_BEGIN(pvdWriter, pvdRegData) \
|
||||
OMNI_PVD_SET_ARRAY_EXPLICIT(pvdWriter, pvdRegData, contextHandle, classID, attributeID, objectRef, valuesPtr, valueCount) \
|
||||
OMNI_PVD_WRITE_SCOPE_END \
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Add an entry to a PVD unique list attribute using the provided pointers to the writer and registration
|
||||
// structure instance.
|
||||
//
|
||||
// See OMNI_PVD_SET for a description of the parameters.
|
||||
//
|
||||
#define OMNI_PVD_ADD_EXPLICIT(writer, regData, contextHandle, classID, attributeID, objectRef, valueRef) \
|
||||
\
|
||||
PX_ASSERT(writer); \
|
||||
PX_ASSERT(regData); \
|
||||
regData->pvd##classID.addTo_##attributeID##_(*writer, contextHandle, objectRef, valueRef);
|
||||
|
||||
|
||||
//
|
||||
// Add an entry to a PVD unique list attribute.
|
||||
//
|
||||
// See OMNI_PVD_SET for a description of the parameters.
|
||||
//
|
||||
#define OMNI_PVD_ADD(contextHandle, classID, attributeID, objectRef, valueRef) \
|
||||
\
|
||||
{ \
|
||||
OMNI_PVD_WRITE_SCOPE_BEGIN(pvdWriter, pvdRegData) \
|
||||
OMNI_PVD_ADD_EXPLICIT(pvdWriter, pvdRegData, contextHandle, classID, attributeID, objectRef, valueRef) \
|
||||
OMNI_PVD_WRITE_SCOPE_END \
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Remove an entry from a PVD unique list attribute using the provided pointers to the writer and registration
|
||||
// structure instance.
|
||||
//
|
||||
// See OMNI_PVD_SET for a description of the parameters.
|
||||
//
|
||||
#define OMNI_PVD_REMOVE_EXPLICIT(writer, regData, contextHandle, classID, attributeID, objectRef, valueRef) \
|
||||
\
|
||||
PX_ASSERT(writer); \
|
||||
PX_ASSERT(regData); \
|
||||
regData->pvd##classID.removeFrom_##attributeID##_(*writer, contextHandle, objectRef, valueRef);
|
||||
|
||||
|
||||
//
|
||||
// Remove an entry from a PVD unique list attribute.
|
||||
//
|
||||
// See OMNI_PVD_SET for a description of the parameters.
|
||||
//
|
||||
#define OMNI_PVD_REMOVE(contextHandle, classID, attributeID, objectRef, valueRef) \
|
||||
\
|
||||
{ \
|
||||
OMNI_PVD_WRITE_SCOPE_BEGIN(pvdWriter, pvdRegData) \
|
||||
OMNI_PVD_REMOVE_EXPLICIT(pvdWriter, pvdRegData, contextHandle, classID, attributeID, objectRef, valueRef) \
|
||||
OMNI_PVD_WRITE_SCOPE_END \
|
||||
}
|
||||
|
||||
|
||||
#else
|
||||
|
||||
|
||||
#define OMNI_PVD_WRITE_SCOPE_BEGIN(writer, regData)
|
||||
#define OMNI_PVD_WRITE_SCOPE_END
|
||||
#define OMNI_PVD_CREATE_EXPLICIT(writer, regData, contextHandle, classID, objectRef)
|
||||
#define OMNI_PVD_CREATE(contextHandle, classID, objectRef)
|
||||
#define OMNI_PVD_DESTROY_EXPLICIT(writer, regData, contextHandle, classID, objectRef)
|
||||
#define OMNI_PVD_DESTROY(contextHandle, classID, objectRef)
|
||||
#define OMNI_PVD_SET_EXPLICIT(writer, regData, contextHandle, classID, attributeID, objectRef, valueRef)
|
||||
#define OMNI_PVD_SET(contextHandle, classID, attributeID, objectRef, valueRef)
|
||||
#define OMNI_PVD_SET_ARRAY_EXPLICIT(writer, regData, contextHandle, classID, attributeID, objectRef, valuesPtr, valueCount)
|
||||
#define OMNI_PVD_SET_ARRAY(contextHandle, classID, attributeID, objectRef, valuesPtr, valueCount)
|
||||
#define OMNI_PVD_ADD_EXPLICIT(writer, regData, contextHandle, classID, attributeID, objectRef, valueRef)
|
||||
#define OMNI_PVD_ADD(contextHandle, classID, attributeID, objectRef, valueRef)
|
||||
#define OMNI_PVD_REMOVE_EXPLICIT(writer, regData, contextHandle, classID, attributeID, objectRef, valueRef)
|
||||
#define OMNI_PVD_REMOVE(contextHandle, classID, attributeID, objectRef, valueRef)
|
||||
|
||||
|
||||
#endif // PX_SUPPORT_OMNI_PVD
|
||||
Reference in New Issue
Block a user