/* * Copyright (c) 2008-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 #include #include using namespace DirectX; using namespace Microsoft::WRL; #define NV_NULL nullptr #define NV_RETURN_ON_FAIL(x) { HRESULT _res = (x); if (FAILED(_res)) { return _res; } } struct ShadowMapD3D11 { ShadowMapD3D11(); HRESULT init(ID3D11Device* device, int resolution); void setDefaultLight(FXMVECTOR eye, FXMVECTOR at, FXMVECTOR up); void setLightMatrices(FXMVECTOR eye, FXMVECTOR lookAt, FXMVECTOR up, float sizeX, float sizeY, float zNear, float zFar); void bindAndClear(ID3D11DeviceContext* context); XMMATRIX m_lightView; XMMATRIX m_lightProjection; XMMATRIX m_lightWorldToTex; ComPtr m_backTexture; ComPtr m_backRtv; ComPtr m_backSrv; ComPtr m_depthTexture; ComPtr m_depthDsv; ComPtr m_depthSrv; ComPtr m_linearSampler; ComPtr m_pointSampler; D3D11_VIEWPORT m_viewport; };