diff options
Diffstat (limited to 'demo/d3d11/shadowMapD3D11.h')
| -rw-r--r-- | demo/d3d11/shadowMapD3D11.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/demo/d3d11/shadowMapD3D11.h b/demo/d3d11/shadowMapD3D11.h new file mode 100644 index 0000000..1fa79ec --- /dev/null +++ b/demo/d3d11/shadowMapD3D11.h @@ -0,0 +1,50 @@ +/* + * 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 <d3d11.h> +#include <DirectXMath.h> +#include <wrl.h> + +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<ID3D11Texture2D> m_backTexture; + ComPtr<ID3D11RenderTargetView> m_backRtv; + ComPtr<ID3D11ShaderResourceView> m_backSrv; + + ComPtr<ID3D11Texture2D> m_depthTexture; + ComPtr<ID3D11DepthStencilView> m_depthDsv; + ComPtr<ID3D11ShaderResourceView> m_depthSrv; + + ComPtr<ID3D11SamplerState> m_linearSampler; + ComPtr<ID3D11SamplerState> m_pointSampler; + + D3D11_VIEWPORT m_viewport; +}; |