aboutsummaryrefslogtreecommitdiff
path: root/APEX_1.4/common/src/ApexPvdClient.cpp
diff options
context:
space:
mode:
authorsschirm <[email protected]>2016-12-23 14:20:36 +0100
committersschirm <[email protected]>2016-12-23 14:56:17 +0100
commitef6937e69e8ee3f409cf9d460d5ad300a65d5924 (patch)
tree710426e8daa605551ce3f34b581897011101c30f /APEX_1.4/common/src/ApexPvdClient.cpp
parentInitial commit: (diff)
downloadphysx-3.4-ef6937e69e8ee3f409cf9d460d5ad300a65d5924.tar.xz
physx-3.4-ef6937e69e8ee3f409cf9d460d5ad300a65d5924.zip
PhysX 3.4 / APEX 1.4 release candidate @21506124
Diffstat (limited to 'APEX_1.4/common/src/ApexPvdClient.cpp')
-rw-r--r--APEX_1.4/common/src/ApexPvdClient.cpp48
1 files changed, 43 insertions, 5 deletions
diff --git a/APEX_1.4/common/src/ApexPvdClient.cpp b/APEX_1.4/common/src/ApexPvdClient.cpp
index 95d24512..5df789e1 100644
--- a/APEX_1.4/common/src/ApexPvdClient.cpp
+++ b/APEX_1.4/common/src/ApexPvdClient.cpp
@@ -61,6 +61,33 @@ struct SimpleAllocator : public PxAllocatorCallback
};
static SimpleAllocator sAllocator;
+class SceneRendererClient : public RendererEventClient, public physx::shdfnd::UserAllocated
+{
+ PX_NOCOPY(SceneRendererClient)
+public:
+ SceneRendererClient(PvdUserRenderer* renderer, PxPvd* pvd) :mRenderer(renderer)
+ {
+ mStream = PvdDataStream::create(pvd);
+ mStream->createInstance(renderer);
+ }
+
+ ~SceneRendererClient()
+ {
+ mStream->destroyInstance(mRenderer);
+ mStream->release();
+ }
+
+ virtual void handleBufferFlush(const uint8_t* inData, uint32_t inLength)
+ {
+ mStream->setPropertyValue(mRenderer, "events", inData, inLength);
+ }
+
+private:
+
+ PvdUserRenderer* mRenderer;
+ PvdDataStream* mStream;
+};
+
class ApexPvdClientImpl : public UserAllocated, public ApexPvdClient, public PxAllocatorCallback
{
PX_NOCOPY(ApexPvdClientImpl)
@@ -70,6 +97,7 @@ class ApexPvdClientImpl : public UserAllocated, public ApexPvdClient, public PxA
Array<void*> mInstances;
PvdDataStream* mDataStream;
PvdUserRenderer* mRenderer;
+ RendererEventClient* mRenderClient;
PvdParameterizedHandler* mParameterizedHandler;
public:
@@ -83,6 +111,7 @@ public:
ApexPvdClientImpl( PxPvd* inPvd )
: mDataStream( NULL )
, mRenderer( NULL )
+ , mRenderClient(NULL)
, mParameterizedHandler( NULL )
, mIsConnected(false)
{
@@ -119,6 +148,8 @@ public:
mIsConnected = true;
mDataStream = PvdDataStream::create(mPvd);
mRenderer = PvdUserRenderer::create();
+ mRenderClient = PX_NEW(SceneRendererClient)(mRenderer, mPvd);
+ mRenderer->setClient(mRenderClient);
mParameterizedHandler = PX_NEW(PvdParameterizedHandler)(*mDataStream);
@@ -156,6 +187,12 @@ public:
mDataStream = NULL;
}
+ if (mRenderClient != NULL)
+ {
+ PX_DELETE(mRenderClient);
+ mRenderClient = NULL;
+ }
+
if ( mRenderer != NULL )
{
mRenderer->release();
@@ -205,12 +242,13 @@ public:
//mDataStream->setPropertyValue( ensureInstance( inInstance ), 1, createSection( SectionType::End ) );
- PxPvdTransport* transport = mPvd->getTransport();
- if ( transport )
- {
+ //PxPvdTransport* transport = mPvd->getTransport();
+ //if ( transport )
+ //{
//Flushes memory and profiling events out of any buffered areas.
- transport->flush();
- }
+ // transport->flush();
+ //}
+ mPvd->flush();
mDataStream->endSection( ensureInstance( inInstance ), "ApexFrame");