summaryrefslogtreecommitdiff
path: root/sample/d3d11/util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sample/d3d11/util.cpp')
-rw-r--r--sample/d3d11/util.cpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/sample/d3d11/util.cpp b/sample/d3d11/util.cpp
new file mode 100644
index 0000000..0803ce0
--- /dev/null
+++ b/sample/d3d11/util.cpp
@@ -0,0 +1,63 @@
+// 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 � 2008- 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.
+//
+
+#include "DXUT.h"
+
+HRESULT LoadFile(LPCTSTR FileName, ID3DBlob** ppBuffer)
+{
+ FILE* pF = NULL;
+ ID3DBlob* pBuffer = NULL;
+
+ if(_wfopen_s(&pF, FileName, L"rb"))
+ goto error;
+
+ if(fseek(pF,0,SEEK_END))
+ goto error;
+
+ const DWORD fileSize = ftell(pF);
+
+ if(fseek(pF,0,SEEK_SET))
+ goto error;
+
+ if(FAILED(D3DCreateBlob(fileSize, &pBuffer)))
+ goto error;
+
+ if(fileSize != fread(pBuffer->GetBufferPointer(), 1, fileSize, pF))
+ goto error;
+
+ fclose(pF);
+
+ *ppBuffer = pBuffer;
+ return S_OK;
+
+error:
+ fclose(pF);
+ SAFE_RELEASE(pBuffer);
+
+ return E_FAIL;
+}