diff options
| author | git perforce import user <a@b> | 2016-10-25 12:29:14 -0600 |
|---|---|---|
| committer | Sheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees> | 2016-10-25 18:56:37 -0500 |
| commit | 3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch) | |
| tree | fa6485c169e50d7415a651bf838f5bcd0fd3bfbd /APEX_1.4/common/include/ApexPvdClient.h | |
| download | physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.tar.xz physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.zip | |
Initial commit:
PhysX 3.4.0 Update @ 21294896
APEX 1.4.0 Update @ 21275617
[CL 21300167]
Diffstat (limited to 'APEX_1.4/common/include/ApexPvdClient.h')
| -rw-r--r-- | APEX_1.4/common/include/ApexPvdClient.h | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/APEX_1.4/common/include/ApexPvdClient.h b/APEX_1.4/common/include/ApexPvdClient.h new file mode 100644 index 00000000..f2da76d3 --- /dev/null +++ b/APEX_1.4/common/include/ApexPvdClient.h @@ -0,0 +1,168 @@ +/* + * Copyright (c) 2008-2015, NVIDIA CORPORATION. All rights reserved. + * + * NVIDIA CORPORATION and its licensors retain all intellectual property + * and proprietary rights in and to this software, related documentation + * and any modifications thereto. Any use, reproduction, disclosure or + * distribution of this software and related documentation without an express + * license agreement from NVIDIA CORPORATION is strictly prohibited. + */ + + +#ifndef APEX_PVD_CLIENT_H +#define APEX_PVD_CLIENT_H + +#include "Px.h" +#include "ApexDefs.h" + +#define APEX_PVD_NAMESPACE "Apex" + +//#define WITHOUT_PVD 1 +#ifdef WITHOUT_PVD +namespace physx +{ + class PxPvd; + namespace pvdsdk + { + class PvdDataStream; + class PvdUserRenderer; + } +} +#else +#include "PsPvd.h" +#include "PxPvdClient.h" +#include "PxPvdObjectModelBaseTypes.h" +#include "PxPvdDataStream.h" +#include "PxPvdUserRenderer.h" +#endif + +namespace NvParameterized +{ + class Interface; + class Definition; + class Handle; +} + +namespace physx +{ +namespace pvdsdk +{ + /** + \brief Define what action needs to be done when updating pvd with an NvParameterized object. + */ + struct PvdAction + { + /** + \brief Enum + */ + enum Enum + { + /** + \brief Create instances and update properties. + */ + UPDATE, + + /** + \brief Destroy instances. + */ + DESTROY + }; + }; + + + + /** + \brief The ApexPvdClient class allows APEX and PhysX to both connect to the PhysX Visual Debugger (PVD) + */ + class ApexPvdClient : public PvdClient + { + public: + /** + \brief Check if the PVD connection is active + */ + virtual bool isConnected() const = 0; + + /** + \brief Called when PVD connection established + */ + virtual void onPvdConnected() = 0; + + /** + \brief Called when PVD connection finished + */ + virtual void onPvdDisconnected() = 0; + + /** + \brief Flush data streams etc. + */ + virtual void flush() = 0; + + /** + \brief Retrieve the PxPvd + */ + virtual PxPvd& getPxPvd() = 0; + + /** + \brief Returns the data stream if Pvd is connected. + */ + virtual PvdDataStream* getDataStream() = 0; + + /** + \brief Returns the PvdUserRenderer if Pvd is connected. + */ + virtual PvdUserRenderer* getUserRender() = 0; + + //virtial PvdMetaDataBinding* getMetaDataBinding() = 0; + + /** + \brief Initializes the classes sent to pvd. + */ + virtual void initPvdClasses() = 0; + + /** + \brief Sends the existing instances to pvd. + */ + virtual void initPvdInstances() = 0; + + /** + \brief Adds properties of an NvParameterized object to the provided class and creates necessary subclasses for structs. + + \note The pvd class pvdClassName must already exist. Pvd classes for structs are being created, but not for references. + */ + virtual void initPvdClasses(const NvParameterized::Definition& paramsHandle, const char* pvdClassName) = 0; + + /** + \brief Creates or destroys pvdInstances and/or updates properties. + */ + virtual void updatePvd(const void* pvdInstance, NvParameterized::Interface& params, PvdAction::Enum pvdAction = PvdAction::UPDATE) = 0; + + ////////////////// + + /** + \brief Start the profiling frame + \note inInstanceId must *not* be used already by pvd + */ + virtual void beginFrame( void* inInstanceId ) = 0; + + /** + \brief End the profiling frame + */ + virtual void endFrame( void* inInstanceId ) = 0; + + /** + \brief Destroy this instance + */ + virtual void release() = 0; + + /** + * Assumes foundation is already booted up. + */ + static ApexPvdClient* create( PxPvd* pvd ); + }; + +} +} + + + +#endif // APEX_PVD_CLIENT_H |