aboutsummaryrefslogtreecommitdiff
path: root/tools/ArtistTools/source/CoreLib/Parameters
diff options
context:
space:
mode:
authorBryan Galdrikian <[email protected]>2017-02-24 09:32:20 -0800
committerBryan Galdrikian <[email protected]>2017-02-24 09:32:20 -0800
commite1bf674c16e3c8472b29574159c789cd3f0c64e0 (patch)
tree9f0cfce09c71a2c27ff19589fcad6cd83504477c /tools/ArtistTools/source/CoreLib/Parameters
parentfirst commit (diff)
downloadblast-e1bf674c16e3c8472b29574159c789cd3f0c64e0.tar.xz
blast-e1bf674c16e3c8472b29574159c789cd3f0c64e0.zip
Updating to [email protected] and [email protected] with a new directory structure.
NvBlast folder is gone, files have been moved to top level directory. README is changed to reflect this.
Diffstat (limited to 'tools/ArtistTools/source/CoreLib/Parameters')
-rw-r--r--tools/ArtistTools/source/CoreLib/Parameters/FoundationHolder.h138
1 files changed, 138 insertions, 0 deletions
diff --git a/tools/ArtistTools/source/CoreLib/Parameters/FoundationHolder.h b/tools/ArtistTools/source/CoreLib/Parameters/FoundationHolder.h
new file mode 100644
index 0000000..5ec7868
--- /dev/null
+++ b/tools/ArtistTools/source/CoreLib/Parameters/FoundationHolder.h
@@ -0,0 +1,138 @@
+// This code contains NVIDIA Confidential Information and is disclosed
+// under the Mutual Non-Disclosure Agreement.
+//
+// Notice
+// ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
+// NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+// THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
+// MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
+//
+// NVIDIA Corporation assumes no responsibility for the consequences of use of such
+// information or for any infringement of patents or other rights of third parties that may
+// result from its use. No license is granted by implication or otherwise under any patent
+// or patent rights of NVIDIA Corporation. No third party distribution is allowed unless
+// expressly authorized by NVIDIA. Details are subject to change without notice.
+// This code supersedes and replaces all information previously supplied.
+// NVIDIA Corporation products are not authorized for use as critical
+// components in life support devices or systems without express written approval of
+// NVIDIA Corporation.
+//
+// Copyright (c) 2013 NVIDIA Corporation. All rights reserved.
+//
+// NVIDIA Corporation and its licensors retain all intellectual property and proprietary
+// rights in and to this software and 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 "NvErrorCallback.h"
+#include "NsGlobals.h"
+#include "NsVersionNumber.h"
+
+class DefaultErrorCallback : public nvidia::NvErrorCallback
+{
+public:
+ DefaultErrorCallback(void)
+ {
+ }
+
+ virtual void reportError(nvidia::NvErrorCode::Enum code, const char* message, const char* file, int line)
+ {
+ NV_UNUSED(code);
+ printf("PhysX: %s : %s : %d\r\n", message, file, line);
+ }
+private:
+};
+
+class DefaultAllocator : public nvidia::NvAllocatorCallback
+{
+public:
+ DefaultAllocator(void)
+ {
+ }
+
+ ~DefaultAllocator(void)
+ {
+ }
+
+ virtual void* allocate(size_t size, const char* typeName, const char* filename, int line)
+ {
+ NV_UNUSED(typeName);
+ NV_UNUSED(filename);
+ NV_UNUSED(line);
+ void *ret = ::_aligned_malloc(size, 16);
+ return ret;
+ }
+
+ virtual void deallocate(void* ptr)
+ {
+ ::_aligned_free(ptr);
+ }
+private:
+};
+
+
+#if 0
+class FoundationHolder
+{
+ NvFoundation* mFoundation;
+ FoundationHolder()
+ :mFoundation(nullptr)
+ {
+ }
+
+ ~FoundationHolder()
+ {
+ if (mFoundation)
+ {
+ // to-do
+ // we should release foundation. but Hair SDK could release it first.
+ //mFoundation->release();
+ mFoundation = nullptr;
+ }
+ }
+
+public:
+
+ static NvFoundation* GetFoundation()
+ {
+ static FoundationHolder fh;
+ if (fh.mFoundation == nullptr)
+ {
+ static DefaultAllocator sDefaultAllocator;
+ static DefaultErrorCallback sDefaultErrorCallback;
+ fh.mFoundation = NvCreateFoundation(NV_FOUNDATION_VERSION, sDefaultAllocator, sDefaultErrorCallback);
+ assert(fh.mFoundation != nullptr);
+ }
+ return fh.mFoundation;
+ }
+};
+
+#else
+
+class FoundationHolder
+{
+ bool m_isInitialized;
+ public:
+ static void GetFoundation()
+ {
+ static FoundationHolder s_holder;
+ if (!s_holder.m_isInitialized)
+ {
+ static DefaultAllocator sDefaultAllocator;
+ static DefaultErrorCallback sDefaultErrorCallback;
+ nvidia::shdfnd::initializeSharedFoundation(NV_FOUNDATION_VERSION, sDefaultAllocator, sDefaultErrorCallback);
+
+ s_holder.m_isInitialized = true;
+ }
+ }
+ ~FoundationHolder()
+ {
+ //nvidia::terminateSharedFoundation();
+ }
+};
+
+#endif