30#include "PxPvdObjectModelBaseTypes.h"
38typedef void (*TSingleMarshaller)(
const uint8_t* src,
uint8_t* dest);
41template <u
int8_t ByteCount>
42static inline void doSwapBytes(uint8_t* __restrict inData)
44 for(uint32_t idx = 0; idx < ByteCount / 2; ++idx)
46 uint32_t endIdx = ByteCount - idx - 1;
48 inData[idx] = inData[endIdx];
49 inData[endIdx] = theTemp;
53template <u
int8_t ByteCount>
54static inline void doSwapBytes(uint8_t* __restrict inData, uint32_t itemCount)
56 uint8_t* end = inData + itemCount * ByteCount;
57 for(; inData < end; inData += ByteCount)
58 doSwapBytes<ByteCount>(inData);
61static inline void swapBytes(uint8_t* __restrict dataPtr, uint32_t numBytes, uint32_t itemWidth)
63 uint32_t numItems = numBytes / itemWidth;
69 doSwapBytes<2>(dataPtr, numItems);
72 doSwapBytes<4>(dataPtr, numItems);
75 doSwapBytes<8>(dataPtr, numItems);
78 doSwapBytes<16>(dataPtr, numItems);
86static inline void swapBytes(uint8_t&)
89static inline void swapBytes(int8_t&)
92static inline void swapBytes(uint16_t& inData)
94 doSwapBytes<2>(
reinterpret_cast<uint8_t*
>(&inData));
96static inline void swapBytes(int16_t& inData)
98 doSwapBytes<2>(
reinterpret_cast<uint8_t*
>(&inData));
100static inline void swapBytes(uint32_t& inData)
102 doSwapBytes<4>(
reinterpret_cast<uint8_t*
>(&inData));
104static inline void swapBytes(int32_t& inData)
106 doSwapBytes<4>(
reinterpret_cast<uint8_t*
>(&inData));
108static inline void swapBytes(
float& inData)
110 doSwapBytes<4>(
reinterpret_cast<uint8_t*
>(&inData));
112static inline void swapBytes(uint64_t& inData)
114 doSwapBytes<8>(
reinterpret_cast<uint8_t*
>(&inData));
116static inline void swapBytes(int64_t& inData)
118 doSwapBytes<8>(
reinterpret_cast<uint8_t*
>(&inData));
120static inline void swapBytes(
double& inData)
122 doSwapBytes<8>(
reinterpret_cast<uint8_t*
>(&inData));
125static inline bool checkLength(
const uint8_t* inStart,
const uint8_t* inStop, uint32_t inLength)
127 return static_cast<uint32_t>(inStop - inStart) >= inLength;
uint32 uint32_t
Definition fwd.hpp:131
uint8 uint8_t
Definition fwd.hpp:103
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39