/* 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 "../Public/INVIDIAGfeSDK.h" namespace GfeSDK { class Core; class Highlights; } DECLARE_LOG_CATEGORY_EXTERN(LogGfeSDK, Log, All); class FNVIDIAGfeSDK : public INVIDIAGfeSDK { public: FNVIDIAGfeSDK(): GFEHandle(nullptr) {} virtual ~FNVIDIAGfeSDK() {} virtual void StartupModule() override; virtual void ShutdownModule() override; virtual GfeSDK::NVGSDK_RetCode SetFileLogLevel(ELogVerbosity::Type Level); virtual GfeSDK::NVGSDK_RetCode SetUnrealLogLevel(ELogVerbosity::Type Level); virtual EGfeSDKReturnCode Create(FGfeSDKCreateInputParams const& InputParams, FGfeSDKCreateResponse& Response); virtual void Release(); virtual FGfeSDKCore* Core(); virtual FGfeSDKHighlights* Highlights(); private: void* LibHandle = nullptr; TUniquePtr SdkHighlights; TUniquePtr SdkCore; // SDK handle for C interface GfeSDK::NVGSDK_HANDLE* GFEHandle; FGfeSDKCreateResponse SdkResponseRecord; };