summaryrefslogtreecommitdiffstats
path: root/src/Runtime/ogl-runtime/src/foundation/Utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Runtime/ogl-runtime/src/foundation/Utils.h')
m---------src/Runtime/ogl-runtime0
-rw-r--r--src/Runtime/ogl-runtime/src/foundation/Utils.h382
2 files changed, 0 insertions, 382 deletions
diff --git a/src/Runtime/ogl-runtime b/src/Runtime/ogl-runtime
new file mode 160000
+Subproject 427fddb50d43aa21a90fc7356ee3cdd8a908df5
diff --git a/src/Runtime/ogl-runtime/src/foundation/Utils.h b/src/Runtime/ogl-runtime/src/foundation/Utils.h
deleted file mode 100644
index 33c24004..00000000
--- a/src/Runtime/ogl-runtime/src/foundation/Utils.h
+++ /dev/null
@@ -1,382 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2008-2012 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#pragma once
-#ifndef QT3DS_RENDER_UTILS_H
-#define QT3DS_RENDER_UTILS_H
-#include "EASTL/hash_map.h"
-#include "EASTL/hash_set.h"
-#include "EASTL/vector.h"
-#include "foundation/Qt3DSIntrinsics.h"
-#include "foundation/Qt3DSDataRef.h"
-#include "foundation/Qt3DSAllocator.h"
-#include "foundation/Qt3DSContainers.h"
-#include "foundation/Qt3DSMath.h"
-#include <ctype.h>
-
-namespace qt3ds {
-namespace foundation {
-
- // Defined in IStringTable.cpp
- extern const char16_t *char16EmptyStr;
- extern const char32_t *char32EmptyStr;
-
- inline const char *nonNull(const char *src) { return src == NULL ? "" : src; }
- inline bool isTrivial(const char *str) { return str == NULL || *str == 0; }
- inline const char16_t *nonNull(const char16_t *src)
- {
- return src == NULL ? char16EmptyStr : src;
- }
- inline bool isTrivial(const char16_t *str) { return str == NULL || *str == 0; }
- inline const char32_t *nonNull(const char32_t *src)
- {
- return src == NULL ? char32EmptyStr : src;
- }
- inline bool isTrivial(const char32_t *str) { return str == NULL || *str == 0; }
-
- // Note this is safe to call on null strings.
- template <typename TCharType>
- inline QT3DSU32 StrLen(const TCharType *inType)
- {
- QT3DSU32 retval = 0;
- while (inType && *inType) {
- ++retval;
- ++inType;
- }
- return retval;
- }
-
- template <typename TCharType>
- inline QT3DSI32 Compare(const TCharType *inLhs, const TCharType *inRhs)
- {
- inLhs = nonNull(inLhs);
- inRhs = nonNull(inRhs);
- while (*inLhs && *inRhs) {
- QT3DSI32 diff = *inLhs - *inRhs;
- if (diff)
- return diff;
- ++inLhs;
- ++inRhs;
- }
- return *inLhs - *inRhs;
- }
-
- template <typename TCharType>
- inline QT3DSI32 CompareCaseless(const TCharType *inLhs, const TCharType *inRhs)
- {
- inLhs = nonNull(inLhs);
- inRhs = nonNull(inRhs);
- while (*inLhs && *inRhs) {
- QT3DSI32 diff = tolower(*inLhs) - tolower(*inRhs);
- if (diff)
- return diff;
- ++inLhs;
- ++inRhs;
- }
- return *inLhs - *inRhs;
- }
-
- template <typename TCharType>
- inline QT3DSI32 CompareNChars(const TCharType *inLhs, const TCharType *inRhs, QT3DSU32 inNumChars)
- {
- inLhs = nonNull(inLhs);
- inRhs = nonNull(inRhs);
- while (*inLhs && *inRhs && inNumChars) {
- QT3DSI32 diff = *inLhs - *inRhs;
- if (diff)
- return diff;
- ++inLhs;
- ++inRhs;
- --inNumChars;
- }
- if (inNumChars)
- return *inLhs - *inRhs;
- return 0;
- }
-
- template <typename TCharType>
- bool AreEqual(const TCharType *inLhs, const TCharType *inRhs)
- {
- return Compare(inLhs, inRhs) == 0;
- }
-
- template <typename TCharType>
- bool AreEqualCaseless(const TCharType *inLhs, const TCharType *inRhs)
- {
- return CompareCaseless(inLhs, inRhs) == 0;
- }
-
- inline QT3DSU32 IsBitSetInBitmap(NVConstDataRef<QT3DSU32> bitmap, QT3DSU32 entryIndex)
- {
- QT3DSU32 bitMapIndex = entryIndex / 32;
- QT3DSU32 bitIndex = entryIndex % 32;
- QT3DSU32 shouldApply = 0;
- if (bitMapIndex < bitmap.mSize)
- shouldApply = (1 << bitIndex) & bitmap[bitMapIndex];
- return shouldApply;
- }
-
- inline void SetBitInBitmap(nvvector<QT3DSU32> &bitmap, QT3DSU32 entryIndex)
- {
- QT3DSU32 bitMapIndex = entryIndex / 32;
- QT3DSU32 bitIndex = entryIndex % 32;
- while (bitmap.size() <= bitMapIndex)
- bitmap.push_back(0);
- bitmap[bitMapIndex] |= (QT3DSU32)(1 << bitIndex);
- }
- inline void UnsetBitInBitmap(nvvector<QT3DSU32> &bitmap, QT3DSU32 entryIndex)
- {
- QT3DSU32 bitMapIndex = entryIndex / 32;
- QT3DSU32 bitIndex = entryIndex % 32;
- if (bitMapIndex < bitmap.size())
- bitmap[bitMapIndex] &= ~((QT3DSU32)(1 << bitIndex));
- }
-
-#define CHECK_CONDITION_AND_RETURN_FALSE(cond, errorType, message) \
- if (cond) { \
- m_Foundation.error(errorType, message); \
- QT3DS_ASSERT(false); \
- return false; \
- }
-// Returns false if the property type doesn't match the incoming type.
-#define CHECK_CONDITION_AND_RETURN(cond, errorType, message) \
- if (cond) { \
- m_Foundation.error(errorType, message); \
- QT3DS_ASSERT(false); \
- }
-
-#define QT3DS_FOREACH(varname, stop) for (QT3DSU32 varname = 0, end = stop; varname < end; ++varname)
-
- template <typename TKeyType, typename TValueType, typename THashType, typename TPredicate,
- typename TBufType, typename TOperator>
- QT3DSU32 GetMapKeysOp(const eastl::hash_map<TKeyType, TValueType, THashType, TPredicate,
- ForwardingAllocator> &map,
- TBufType *buffer, QT3DSU32 bufSize, QT3DSU32 startIdx, TOperator op)
- {
- QT3DSU32 numItems = static_cast<QT3DSU32>(map.size());
- if (numItems == 0 || bufSize == 0)
- return 0;
-
- startIdx = NVMin(numItems - 1, startIdx);
- QT3DSU32 retval = 0;
- for (typename eastl::hash_map<TKeyType, TValueType, THashType, TPredicate,
- ForwardingAllocator>::const_iterator iter = map.begin(),
- end = map.end();
- iter != end && bufSize; ++iter) {
- if (startIdx)
- --startIdx;
- else {
- buffer[retval] = op(iter->first);
- --bufSize;
- ++retval;
- }
- }
- return retval;
- }
-
- struct IdOp
- {
- template <typename TDataType>
- TDataType operator()(const TDataType &item)
- {
- return item;
- }
- };
-
- template <typename TKeyType, typename TValueType, typename THashType, typename TPredicateType>
- QT3DSU32
- GetMapKeys(const eastl::hash_map<TKeyType, TValueType, THashType, ForwardingAllocator> &map,
- TKeyType *buffer, QT3DSU32 bufSize, QT3DSU32 startIdx)
- {
- return GetMapKeysOp(map, buffer, bufSize, startIdx, IdOp());
- }
-
- struct DerefOp
- {
- template <typename TDataType>
- TDataType operator()(const TDataType *item)
- {
- return *item;
- }
- };
-
- template <typename TKeyType, typename TValueType, typename THashType, typename TPredicateType,
- typename TAllocatorType, typename TBufType, typename TOp>
- QT3DSU32 GetMapValues(
- const eastl::hash_map<TKeyType, TValueType, THashType, TPredicateType, TAllocatorType> &map,
- TBufType *buffer, QT3DSU32 bufSize, QT3DSU32 startIdx, TOp op)
- {
- QT3DSU32 numItems = static_cast<QT3DSU32>(map.size());
- if (numItems == 0 || bufSize == 0)
- return 0;
-
- startIdx = NVMin(numItems - 1, startIdx);
- QT3DSU32 retval = 0;
- for (typename eastl::hash_map<TKeyType, TValueType, THashType, TPredicateType,
- TAllocatorType>::const_iterator iter = map.begin(),
- end = map.end();
- iter != end && bufSize; ++iter) {
- if (startIdx)
- --startIdx;
- else {
- buffer[retval] = op(iter->second);
- --bufSize;
- ++retval;
- }
- }
- return retval;
- }
-
- template <typename TValueType, typename TBufType>
- QT3DSU32 GetArrayEntries(const nvvector<TValueType> &data, TBufType *buffer, QT3DSU32 bufSize,
- QT3DSU32 startIdx)
- {
- QT3DSU32 numItems = static_cast<QT3DSU32>(data.size());
- if (numItems == 0 || bufSize == 0)
- return 0;
-
- startIdx = NVMin(numItems - 1, startIdx);
- QT3DSU32 available = NVMin(numItems - startIdx, bufSize);
- QT3DS_FOREACH(idx, available)
- buffer[idx] = data[idx + startIdx];
- return available;
- }
-
- template <typename TValueType, typename TBufType>
- QT3DSU32 GetDataRefEntries(const NVDataRef<TValueType> &data, TBufType *buffer, QT3DSU32 bufSize,
- QT3DSU32 startIdx)
- {
- QT3DSU32 numItems = static_cast<QT3DSU32>(data.size());
- if (numItems == 0 || bufSize == 0)
- return 0;
-
- startIdx = NVMin(numItems - 1, startIdx);
- QT3DSU32 available = NVMin(numItems - startIdx, bufSize);
- QT3DS_FOREACH(idx, available)
- buffer[idx] = data.mData[idx + startIdx];
- return available;
- }
-
- template <typename TValueType, typename TBufType>
- QT3DSU32 GetDataRefEntries(const NVConstDataRef<TValueType> &data, TBufType *buffer, QT3DSU32 bufSize,
- QT3DSU32 startIdx)
- {
- QT3DSU32 numItems = static_cast<QT3DSU32>(data.size());
- if (numItems == 0 || bufSize == 0)
- return 0;
-
- startIdx = NVMin(numItems - 1, startIdx);
- QT3DSU32 available = NVMin(numItems - startIdx, bufSize);
- QT3DS_FOREACH(idx, available)
- buffer[idx] = data.mData[idx + startIdx];
- return available;
- }
-
- template <typename TKeyType, typename THashType, typename TPredicate, typename TAllocator>
- QT3DSU32 GetHashSetEntries(eastl::hash_set<TKeyType, THashType, TPredicate, TAllocator> &data,
- TKeyType *buffer, QT3DSU32 bufSize, QT3DSU32 startIdx)
- {
- QT3DSU32 numItems = static_cast<QT3DSU32>(data.size());
- if (numItems == 0 || bufSize == 0)
- return 0;
- startIdx = NVMin(numItems - 1, startIdx);
- QT3DSU32 available = NVMin(numItems - startIdx, bufSize);
- QT3DSU32 idx = 0;
- for (typename eastl::hash_set<TKeyType, THashType, TPredicate, TAllocator>::const_iterator
- iter = data.begin(),
- end = data.end();
- iter != end && idx < available; ++iter, ++idx) {
- if (startIdx) {
- --startIdx;
- continue;
- }
- buffer[idx] = *iter;
- }
- return available;
- }
-
- template <typename TDataType>
- void memCopyT(TDataType *dest, const TDataType *src, QT3DSU32 size)
- {
- memCopy(dest, src, size * sizeof(TDataType));
- }
-
- template <typename TDataType>
- NVDataRef<TDataType> PtrAtOffset(QT3DSU8 *baseData, QT3DSU32 offset, QT3DSU32 byteSize)
- {
- return NVDataRef<TDataType>(byteSize ? (TDataType *)(baseData + offset) : NULL,
- byteSize / sizeof(TDataType));
- }
-
- struct char_hasher
- {
- size_t operator()(const char *item) const { return eastl::hash<const char8_t *>()(item); }
- };
-
- struct char_equal_to
- {
- bool operator()(const char *lhs, const char *rhs) const
- {
- if (lhs == NULL)
- lhs = "";
- if (rhs == NULL)
- rhs = "";
- return strcmp(lhs, rhs) == 0;
- }
- };
-
- struct wide_char_hasher
- {
- size_t operator()(const char16_t *item) const
- {
- return eastl::hash<const char16_t *>()(item);
- }
- };
-
- struct wide_char_equal_to
- {
- bool operator()(const char16_t *lhs, const char16_t *rhs) const
- {
- if (lhs == NULL)
- lhs = reinterpret_cast<const char16_t *>(L"");
- if (rhs == NULL)
- rhs = reinterpret_cast<const char16_t *>(L"");
- while (*lhs && *rhs) {
- int answer = *lhs - *rhs;
- if (answer)
- return false;
- ++lhs;
- ++rhs;
- }
- return *lhs == *rhs;
- }
- };
-}
-}
-#endif