diff options
Diffstat (limited to 'sample/d3d11/util.cpp')
| -rw-r--r-- | sample/d3d11/util.cpp | 63 |
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; +} |