#pragma once #include #include #include "macro.h" class shadow_map { public: shadow_map(); ~shadow_map(); bool initialize(ID3D11Device* device, int width, int height); void shutdown(); void set_render_target(ID3D11DeviceContext* context); void clear_render_target(ID3D11DeviceContext* context, float depth = 1.0f); ID3D11ShaderResourceView* get_shader_resource_view(); private: ID3D11Texture2D* depth_texture_; ID3D11DepthStencilView* depth_stencil_view_; ID3D11ShaderResourceView* shader_resource_view_; int width_, height_; };