27#ifndef PX_PVD_COMM_STREAM_EVENTS_H
28#define PX_PVD_COMM_STREAM_EVENTS_H
30#include "foundation/PxVec3.h"
31#include "foundation/PxFlags.h"
32#include "foundation/PxTime.h"
34#include "PxPvdObjectModelBaseTypes.h"
51template <
typename TDataType>
54 bool variable_size_check;
59#define DECLARE_TYPE_VARIABLE_SIZED(type) \
61 struct PvdCommVariableSizedEventCheck<type> \
63 uint32_t variable_size_check; \
82struct CreateDestroyInstanceProperty;
98#define DECLARE_COMM_STREAM_EVENTS \
100DECLARE_PVD_COMM_STREAM_EVENT(StringHandleEvent) \
101DECLARE_PVD_COMM_STREAM_EVENT(CreateClass) \
102DECLARE_PVD_COMM_STREAM_EVENT(DeriveClass) \
103DECLARE_PVD_COMM_STREAM_EVENT(CreateProperty) \
104DECLARE_PVD_COMM_STREAM_EVENT(CreatePropertyMessage) \
105DECLARE_PVD_COMM_STREAM_EVENT(CreateInstance) \
106DECLARE_PVD_COMM_STREAM_EVENT(SetPropertyValue) \
107DECLARE_PVD_COMM_STREAM_EVENT(BeginSetPropertyValue) \
108DECLARE_PVD_COMM_STREAM_EVENT(AppendPropertyValueData) \
109DECLARE_PVD_COMM_STREAM_EVENT(EndSetPropertyValue) \
110DECLARE_PVD_COMM_STREAM_EVENT(SetPropertyMessage) \
111DECLARE_PVD_COMM_STREAM_EVENT(BeginPropertyMessageGroup) \
112DECLARE_PVD_COMM_STREAM_EVENT(SendPropertyMessageFromGroup) \
113DECLARE_PVD_COMM_STREAM_EVENT(EndPropertyMessageGroup) \
114DECLARE_PVD_COMM_STREAM_EVENT(DestroyInstance) \
115DECLARE_PVD_COMM_STREAM_EVENT(PushBackObjectRef) \
116DECLARE_PVD_COMM_STREAM_EVENT(RemoveObjectRef) \
117DECLARE_PVD_COMM_STREAM_EVENT(BeginSection) \
118DECLARE_PVD_COMM_STREAM_EVENT(EndSection) \
119DECLARE_PVD_COMM_STREAM_EVENT(SetPickable) \
120DECLARE_PVD_COMM_STREAM_EVENT(SetColor) \
121DECLARE_PVD_COMM_STREAM_EVENT(SetIsTopLevel) \
122DECLARE_PVD_COMM_STREAM_EVENT(SetCamera) \
123DECLARE_PVD_COMM_STREAM_EVENT(AddProfileZone) \
124DECLARE_PVD_COMM_STREAM_EVENT(AddProfileZoneEvent) \
125DECLARE_PVD_COMM_STREAM_EVENT(StreamEndEvent) \
126DECLARE_PVD_COMM_STREAM_EVENT(ErrorMessage) \
127DECLARE_PVD_COMM_STREAM_EVENT_NO_COMMA(OriginShift)
134#define DECLARE_PVD_COMM_STREAM_EVENT(x) x,
135#define DECLARE_PVD_COMM_STREAM_EVENT_NO_COMMA(x) x
136 DECLARE_COMM_STREAM_EVENTS
137#undef DECLARE_PVD_COMM_STREAM_EVENT_NO_COMMA
138#undef DECLARE_PVD_COMM_STREAM_EVENT
143template <
typename TDataType>
148template <PvdCommStreamEventTypes::Enum TEnumType>
154#define DECLARE_PVD_COMM_STREAM_EVENT(x) \
156 struct DatatypeToCommEventType<x> \
160 EEventTypeMap = PvdCommStreamEventTypes::x \
164 struct CommEventTypeToDatatype<PvdCommStreamEventTypes::x> \
166 typedef x TEventType; \
168#define DECLARE_PVD_COMM_STREAM_EVENT_NO_COMMA(x) \
170template<> struct DatatypeToCommEventType<x> \
174 EEventTypeMap = PvdCommStreamEventTypes::x \
178template<> struct CommEventTypeToDatatype<PvdCommStreamEventTypes::x> \
180 typedef x TEventType; \
183DECLARE_COMM_STREAM_EVENTS
184#undef DECLARE_PVD_COMM_STREAM_EVENT_NO_COMMA
185#undef DECLARE_PVD_COMM_STREAM_EVENT
187template <
typename TDataType>
188PvdCommStreamEventTypes::Enum getCommStreamEventType()
212 virtual void streamify(uint8_t& val) = 0;
213 virtual void streamify(uint16_t& val) = 0;
214 virtual void streamify(uint32_t& val) = 0;
215 virtual void streamify(
float& val) = 0;
216 virtual void streamify(uint64_t& val) = 0;
217 virtual void streamify(String& val) = 0;
225 streamify(hdl.mHandle);
234 void streamify(PvdCommStreamEventTypes::Enum& val)
236 uint8_t detyped =
static_cast<uint8_t
>(val);
238 val =
static_cast<PvdCommStreamEventTypes::Enum
>(detyped);
240 void streamify(PropertyType::Enum& val)
242 uint8_t detyped =
static_cast<uint8_t
>(val);
244 val =
static_cast<PropertyType::Enum
>(detyped);
247 void streamify(
bool& val)
249 uint8_t detyped = uint8_t(val ? 1 : 0);
251 val = detyped ? true :
false;
256 streamify(name.mNamespace);
257 streamify(name.mName);
268 void streamify(
PxVec3& vec)
295 static uint32_t getStreamId()
299 static uint32_t getStreamVersion()
305 uint32_t mStreamVersion;
306 uint64_t mTimestampNumerator;
307 uint64_t mTimestampDenominator;
310 : mStreamId(getStreamId())
311 , mStreamVersion(getStreamVersion())
312 , mTimestampNumerator(physx::PxTime::getCounterFrequency().mNumerator * 10)
313 , mTimestampDenominator(physx::PxTime::getCounterFrequency().mDenominator)
314 , mStreamFlags(
sizeof(
void*) == 4 ? 0 : 1)
320 s.streamify(mStreamId);
321 s.streamify(mStreamVersion);
322 s.streamify(mTimestampNumerator);
323 s.streamify(mTimestampDenominator);
324 s.streamify(mStreamFlags);
335 EventGroup(uint32_t dataSize = 0, uint32_t numEvents = 0, uint64_t streamId = 0, uint64_t ts = 0)
336 : mDataSize(dataSize), mNumEvents(numEvents), mStreamId(streamId), mTimestamp(ts)
342 s.streamify(mDataSize);
343 s.streamify(mNumEvents);
344 s.streamify(mStreamId);
345 s.streamify(mTimestamp);
362 s.streamify(mString);
363 s.streamify(mHandle);
369typedef uint64_t Timestamp;
401 s.streamify(mParent);
432 PropertyType::Enum mPropertyType;
437 : mClass(cls), mName(name), mSemantic(semantic), mDatatypeName(dtypeName), mPropertyType(ptype), mValues(values)
448 s.streamify(mSemantic);
449 s.streamify(mDatatypeName);
450 s.streamify(mPropertyType);
451 s.streamify(mValues);
459 uint32_t mMessageOffset;
462 : mPropertyName(pname), mDatatypeName(dtypeName), mMessageOffset(offset), mByteSize(byteSize)
472 s.streamify(mPropertyName);
473 s.streamify(mDatatypeName);
474 s.streamify(mMessageOffset);
475 s.streamify(mByteSize);
488 uint32_t mMessageByteSize;
491 uint32_t messageByteSize)
492 : mClass(cls), mMessageName(msgName), mMessageEntries(propArg), mMessageByteSize(messageByteSize)
502 s.streamify(mMessageName);
503 s.streamify(mMessageEntries);
504 s.streamify(mMessageByteSize);
514 uint64_t mInstanceId;
526 s.streamify(mInstanceId);
534 uint64_t mInstanceId;
542 : mInstanceId(instance), mPropertyName(name), mData(data), mIncomingTypeName(incomingTypeName), mNumItems(numItems)
552 s.streamify(mInstanceId);
553 s.streamify(mPropertyName);
554 s.streamify(mIncomingTypeName);
555 s.streamify(mNumItems);
560 serializeBeginning(s);
569 uint64_t mInstanceId;
574 : mInstanceId(instance), mPropertyName(name), mIncomingTypeName(incomingTypeName)
583 s.streamify(mInstanceId);
584 s.streamify(mPropertyName);
585 s.streamify(mIncomingTypeName);
604 s.streamify(mNumItems);
626 uint64_t mInstanceId;
631 : mInstanceId(instance), mMessageName(msgName), mData(data)
641 s.streamify(mInstanceId);
642 s.streamify(mMessageName);
662 s.streamify(mMsgName);
681 s.streamify(mInstance);
702 uint64_t mInstanceId;
707 : mInstanceId(instId), mProperty(prop), mObjectRef(objRef)
717 s.streamify(mInstanceId);
718 s.streamify(mProperty);
719 s.streamify(mObjectRef);
725 uint64_t mInstanceId;
730 : mInstanceId(instId), mProperty(prop), mObjectRef(objRef)
740 s.streamify(mInstanceId);
741 s.streamify(mProperty);
742 s.streamify(mObjectRef);
749 uint64_t mInstanceId;
759 s.streamify(mInstanceId);
768 Timestamp mTimestamp;
770 : mSectionId(sectionId), mName(name), mTimestamp(timestamp)
779 s.streamify(mSectionId);
781 s.streamify(mTimestamp);
789 Timestamp mTimestamp;
791 : mSectionId(sectionId), mName(name), mTimestamp(timestamp)
800 s.streamify(mSectionId);
802 s.streamify(mTimestamp);
809 uint64_t mInstanceId;
811 SetPickable(uint64_t instId,
bool pick) : mInstanceId(instId), mPickable(pick)
820 s.streamify(mInstanceId);
821 s.streamify(mPickable);
827 uint64_t mInstanceId;
829 SetColor(uint64_t instId,
PvdColor color) : mInstanceId(instId), mColor(color)
838 s.streamify(mInstanceId);
846 uint64_t mInstanceId;
849 SetIsTopLevel(uint64_t instId,
bool topLevel) : mInstanceId(instId), mIsTopLevel(topLevel)
858 s.streamify(mInstanceId);
859 s.streamify(mIsTopLevel);
870 : mName(name), mPosition(pos), mUp(up), mTarget(target)
880 s.streamify(mPosition);
882 s.streamify(mTarget);
893 ErrorMessage(uint32_t code, String message, String file, uint32_t line)
894 : mCode(code), mMessage(message), mFile(file), mLine(line)
905 s.streamify(mMessage);
913 uint64_t mInstanceId;
915 AddProfileZone(uint64_t iid, String nm) : mInstanceId(iid), mName(nm)
924 s.streamify(mInstanceId);
931 uint64_t mInstanceId;
934 bool mCompileTimeEnabled;
936 : mInstanceId(iid), mName(nm), mEventId(eid), mCompileTimeEnabled(cte)
945 s.streamify(mInstanceId);
947 s.streamify(mEventId);
948 s.streamify(mCompileTimeEnabled);
967 uint64_t mInstanceId;
979 s.streamify(mInstanceId);
Container for bitfield flag variables associated with a specific enum type.
Definition PxFlags.h:73
3 Element vector class.
Definition PxVec3.h:50
Definition PxPvdObjectModelBaseTypes.h:345
Definition PxPvdCommStreamEvents.h:279
Definition PxPvdCommStreamEvents.h:205
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
Definition PxPvdCommStreamEvents.h:930
Definition PxPvdCommStreamEvents.h:912
Definition PxPvdCommStreamEvents.h:591
Definition PxPvdCommStreamEvents.h:651
Definition PxPvdCommStreamEvents.h:765
Definition PxPvdCommStreamEvents.h:568
Definition PxPvdCommStreamEvents.h:150
Definition PxPvdCommStreamEvents.h:42
Definition PxPvdCommStreamEvents.h:372
Definition PxPvdCommStreamEvents.h:512
Definition PxPvdCommStreamEvents.h:484
Definition PxPvdCommStreamEvents.h:427
Definition PxPvdCommStreamEvents.h:145
Definition PxPvdCommStreamEvents.h:388
Definition PxPvdCommStreamEvents.h:748
Definition PxPvdCommStreamEvents.h:690
Definition PxPvdCommStreamEvents.h:786
Definition PxPvdCommStreamEvents.h:612
Definition PxPvdCommStreamEvents.h:887
Definition PxPvdCommStreamEvents.h:329
Definition PxPvdCommStreamEvents.h:407
Definition PxPvdCommStreamEvents.h:966
Definition PxPvdCommStreamEvents.h:701
Definition PxPvdObjectModelBaseTypes.h:114
Definition PxPvdCommStreamEvents.h:130
Definition PxPvdCommStreamEvents.h:53
Definition PxPvdCommStreamEvents.h:724
Definition PxPvdCommStreamEvents.h:668
Definition PxPvdCommStreamEvents.h:864
Definition PxPvdCommStreamEvents.h:826
Definition PxPvdCommStreamEvents.h:845
Definition PxPvdCommStreamEvents.h:808
Definition PxPvdCommStreamEvents.h:625
Definition PxPvdCommStreamEvents.h:533
Definition PxPvdCommStreamEvents.h:953
Definition PxPvdCommStreamEvents.h:294
Definition PxPvdCommStreamEvents.h:194
Definition PxPvdCommStreamEvents.h:456
Definition PxPvdCommStreamEvents.h:350
Definition PxPvdObjectModelBaseTypes.h:136