/* Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved. * * NVIDIA CORPORATION and its licensors retain all intellectual property * and proprietary rights in and to this software, related documentation * and any modifications thereto. Any use, reproduction, disclosure or * distribution of this software and related documentation without an express * license agreement from NVIDIA CORPORATION is strictly prohibited. */ #pragma once #include "NVIDIAGfeSDKPrivatePCH.h" #include extern std::map kScopeSdkToUnreal; extern std::map kScopeUnrealToSdk; extern std::map kPermissionSdkToUnreal; extern std::map kPermissionUnrealToSdk; extern std::map kHighlightTypeSdkToUnreal; extern std::map kHighlightTypeUnrealToSdk; extern std::map kHighlightSignificanceSdkToUnreal; extern std::map kHighlightSignificanceUnrealToSdk; extern EGfeSDKReturnCode TranslateReturnCodeToUnreal(GfeSDK::NVGSDK_RetCode code); template std::map InvertMap(std::map const& map) { std::map result; for (auto it = map.begin(); it != map.end(); ++it) { result[it->second] = it->first; } return result; } template U TranslateEnum(std::map const& map, T const& value, U const& defaultValue) { auto foundIt = map.find(value); return (foundIt != map.end()) ? foundIt->second : defaultValue; } template U TranslateBitfieldEnum(std::map const& map, T const& value) { uint32 result = 0x0; for (size_t i = 0; i < sizeof(T)*8; ++i) { uint32 v = (1 << i); if ((static_cast(value) & v) > 0) { auto foundIt = map.find(static_cast(v)); if (foundIt != map.end()) { result |= static_cast(foundIt->second); } } } return static_cast(result); }