/// ****************************************************************************
/// @file   
/// @author Dr.Neeton
/// @date   200X/X/X - 2014/01/26
/// 
/// @brief  DirectXGraphics、レンダリングターゲットの自動保存スタック。
/// 
/// ****************************************************************************

#pragma once

#include "CPL_DX_Kernel.h"

namespace CPL {
namespace DX {


// _____________________________________________________________________________
/// @brief レンダリングターゲットスタッククラス
/// 
/// （レンダリングターゲットの数は現仕様で最大６）
///
// *****************************************************************************
class AutoSaveRenderTargets
{
private:
  static const int MAX_RENDER_TARGET = 6;
  DX::CpDXDeviceContext    m_cp_d3d_IC;
  DX::CpDXRenderTargetView m_cp_RTV[ MAX_RENDER_TARGET ];
  UINT                     m_RTV_num;
  DX::CpDXDepthStencilView m_cp_DSV;

public:
  AutoSaveRenderTargets
  ( _in<DX::DXDeviceContext*> in_ptr_d3d_IC
  , _in<UINT                > in_RTV_num
  );
  ~AutoSaveRenderTargets();

  /// AutoSaveRenderTargetsでは使用されません。
  HRESULT RenderSetup( _in<DXDeviceContext*> in_ptr_d3d_IC )
  {
    return S_OK;
  }
};


} // namespace DX
} // namespace CPL
