#pragma once
#include <d3d11.h>
#include <directxmath.h>
#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_;
};