#include "SharedMemoryInProcessPhysicsC_API.h" #include "../Utils/b3Clock.h" #include "PhysicsClientSharedMemory.h" #include"../ExampleBrowser/InProcessExampleBrowser.h" #include "Bullet3Common/b3Logging.h" class InProcessPhysicsClientSharedMemoryMainThread : public PhysicsClientSharedMemory { btInProcessExampleBrowserMainThreadInternalData* m_data; b3Clock m_clock; public: InProcessPhysicsClientSharedMemoryMainThread(int argc, char* argv[]) { int newargc = argc+2; char** newargv = (char**)malloc(sizeof(void*)*newargc); for (int i=0;i20) { B3_PROFILE("m_clock.reset()"); m_clock.reset(); btUpdateInProcessExampleBrowserMainThread(m_data); } } { b3Clock::usleep(0); } const SharedMemoryStatus* stat = 0; { stat = PhysicsClientSharedMemory::processServerStatus(); } return stat; } virtual bool submitClientCommand(const struct SharedMemoryCommand& command) { // btUpdateInProcessExampleBrowserMainThread(m_data); return PhysicsClientSharedMemory::submitClientCommand(command); } }; b3PhysicsClientHandle b3CreateInProcessPhysicsServerAndConnectMainThread(int argc, char* argv[]) { InProcessPhysicsClientSharedMemoryMainThread* cl = new InProcessPhysicsClientSharedMemoryMainThread(argc, argv); cl->setSharedMemoryKey(SHARED_MEMORY_KEY); cl->connect(); return (b3PhysicsClientHandle ) cl; } class InProcessPhysicsClientSharedMemory : public PhysicsClientSharedMemory { btInProcessExampleBrowserInternalData* m_data; public: InProcessPhysicsClientSharedMemory(int argc, char* argv[]) { int newargc = argc+2; char** newargv = (char**)malloc(sizeof(void*)*newargc); for (int i=0;isetSharedMemoryKey(SHARED_MEMORY_KEY); cl->connect(); return (b3PhysicsClientHandle ) cl; }