From 446ce137c6823ba9eff273bdafdaf266287c7c98 Mon Sep 17 00:00:00 2001 From: Bryan Galdrikian Date: Tue, 21 Feb 2017 12:07:59 -0800 Subject: first commit --- .../source/NvBlastExtSerializationLLInterface.cpp | 101 +++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 NvBlast/sdk/extensions/serialization/source/NvBlastExtSerializationLLInterface.cpp (limited to 'NvBlast/sdk/extensions/serialization/source/NvBlastExtSerializationLLInterface.cpp') diff --git a/NvBlast/sdk/extensions/serialization/source/NvBlastExtSerializationLLInterface.cpp b/NvBlast/sdk/extensions/serialization/source/NvBlastExtSerializationLLInterface.cpp new file mode 100644 index 0000000..26d8667 --- /dev/null +++ b/NvBlast/sdk/extensions/serialization/source/NvBlastExtSerializationLLInterface.cpp @@ -0,0 +1,101 @@ +/* +* 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. +*/ + +#include "NvBlastExtSerializationLLInterface.h" +#include "NvBlastExtSerializationLLImpl.h" +#include +#include "NvBlastExtSerialization.h" +#include "NvBlastAsset.h" +#include +#include "NvBlastExtGlobals.h" + + +NvBlastExtAlloc gAlloc = nullptr; +NvBlastLog gLog = nullptr; + +extern "C" +{ + NVBLAST_API void setAllocator(NvBlastExtAlloc alloc) + { + gAlloc = alloc; + } + + NVBLAST_API void setLog(NvBlastLog log) + { + gLog = log; + } + + NVBLAST_API NvBlastAsset* deserializeAsset(const unsigned char* input, uint32_t size) + { +#if defined(BLAST_LL_ALLOC) + if (gAlloc == nullptr || gLog == nullptr) + { + std::cerr << "Must set allocator and log when using low level serialization library. See setAllocator() and setLog() functions." << std::endl; + return nullptr; + } +#endif + + return Nv::Blast::ExtSerialization::deserialize(input, size); + } + + NVBLAST_API NvBlastAsset* deserializeAssetFromStream(std::istream &inputStream) + { +#if defined(BLAST_LL_ALLOC) + if (gAlloc == nullptr || gLog == nullptr) + { + std::cerr << "Must set allocator and log when using low level serialization library. See setAllocator() and setLog() functions." << std::endl; + return nullptr; + } +#endif + + return Nv::Blast::ExtSerialization::deserializeFromStream(inputStream); + } + + NVBLAST_API bool serializeAssetIntoStream(const NvBlastAsset *asset, std::ostream &outputStream) + { +#if defined(BLAST_LL_ALLOC) + if (gAlloc == nullptr || gLog == nullptr) + { + std::cerr << "Must set allocator and log when using low level serialization library. See setAllocator() and setLog() functions." << std::endl; + return false; + } +#endif + + return Nv::Blast::ExtSerialization::serializeIntoStream(reinterpret_cast(asset), outputStream); + } + + NVBLAST_API bool serializeAssetIntoNewBuffer(const NvBlastAsset *asset, unsigned char **outBuffer, uint32_t &outSize) + { +#if defined(BLAST_LL_ALLOC) + if (gAlloc == nullptr || gLog == nullptr) + { + std::cerr << "Must set allocator and log when using low level serialization library. See setAllocator() and setLog() functions." << std::endl; + return false; + } +#endif + + return Nv::Blast::ExtSerialization::serializeIntoNewBuffer(reinterpret_cast(asset), outBuffer, outSize); + } + + NVBLAST_API bool serializeAssetIntoExistingBuffer(const NvBlastAsset *asset, unsigned char *buffer, uint32_t maxSize, uint32_t &usedSize) + { +#if defined(BLAST_LL_ALLOC) + if (gAlloc == nullptr || gLog == nullptr) + { + std::cerr << "Must set allocator and log when using low level serialization library. See setAllocator() and setLog() functions." << std::endl; + return false; + } +#endif + + return Nv::Blast::ExtSerialization::serializeIntoExistingBuffer(reinterpret_cast(asset), buffer, maxSize, usedSize); + } + +} + -- cgit v1.2.3