diff options
author | Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> | 2015-10-20 13:18:59 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> | 2015-10-22 10:08:51 +0000 |
commit | 31f9c57bc50ae053cfaf039a1dfdb128e2494458 (patch) | |
tree | 316138cb73c49877f5a80a8496c2f1b737122fb5 /tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStringsHashT.h | |
parent | 4162ddeb02ee41fd4217d7f3d93d45cab3313ba8 (diff) |
Fix issues with COIN builds
-Fix miscellaneous compile errors
-Move manual tests to manual folder and enable export of autotests
-Added widgets requirement
-Fixed autotests
-Fixed renderer and controller synchronization in QML case
-Treat fallback Mesa as ES2 similar to setting AA_UseSoftwareOpenGL
Change-Id: If6619733725d079e339bef16262e5ea1450ab20f
Reviewed-by: Tomi Korpipää <tomi.korpipaa@theqtcompany.com>
Diffstat (limited to 'tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStringsHashT.h')
-rw-r--r-- | tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStringsHashT.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStringsHashT.h b/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStringsHashT.h new file mode 100644 index 00000000..57602211 --- /dev/null +++ b/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStringsHashT.h @@ -0,0 +1,90 @@ +#ifndef _XN_STRINGS_HASH_T_H_ +#define _XN_STRINGS_HASH_T_H_ + +//--------------------------------------------------------------------------- +// Includes +//--------------------------------------------------------------------------- +#include "XnHashT.h" + +//--------------------------------------------------------------------------- +// Code +//--------------------------------------------------------------------------- +class XnStringsHashKeyManager +{ +public: + static XnHashCode Hash(const XnChar* const& key) + { + XnUInt32 nCRC = 0; + xnOSStrCRC32(key, &nCRC); + + // convert from UINT32 to XnHashValue + return nCRC % (1 << (sizeof(XnHashCode)*8)); + } + + static XnInt32 Compare(const XnChar* const& key1, const XnChar* const& key2) + { + return strcmp(key1, key2); + } +}; + +template<class TValue> +class XnStringsNodeAllocator +{ +public: + typedef XnKeyValuePair<const XnChar*, TValue> TPair; + typedef XnLinkedNodeT<TPair> TLinkedNode; + + static TLinkedNode* Allocate(TPair const& pair) + { + XnChar* pKeyCopy = xnOSStrDup(pair.Key()); + if (pKeyCopy == NULL) + { + return NULL; + } + + return XN_NEW(TLinkedNode, TPair(pKeyCopy, pair.Value())); + } + + static void Deallocate(TLinkedNode* pNode) + { + XN_ASSERT(pNode != NULL); + XN_ASSERT(pNode->value.Key() != NULL); + + xnOSFree(pNode->value.Key()); + XN_DELETE(pNode); + } +}; + +template<class TValue> +class XnStringsHashT : public XnHashT<const XnChar*, TValue, XnStringsHashKeyManager, XnStringsNodeAllocator<TValue> > +{ + typedef XnHashT<const XnChar*, TValue, XnStringsHashKeyManager, XnStringsNodeAllocator<TValue> > Base; + +public: + XnStringsHashT() : Base() {} + + XnStringsHashT(const XnStringsHashT& other) : Base() + { + *this = other; + } + + XnStringsHashT& operator=(const XnStringsHashT& other) + { + Base::operator=(other); + // no other members + return *this; + } +}; + +class XnStringsSet : public XnStringsHashT<void*> +{ + typedef XnStringsHashT<void*> Base; + +public: + XnStatus Set(const XnChar* key) + { + return Base::Set(key, NULL); + } +}; + +#endif // _XN_STRINGS_HASH_T_H_
\ No newline at end of file |