/// ****************************************************************************
/// @file   
/// @author Dr.Neeton
/// @date   200X/X/X - 2014/12/31
/// 
/// @brief  DirectX デプスステンシルステートヘルパー関連。
/// 
/// ****************************************************************************

#pragma once

#include "CPL_DX_RenderFragment.h"

namespace CPL {
namespace DX {


// _____________________________________________________________________________
/// @brief ラスタライザヘルパークラス
///
// *****************************************************************************
class DepthStencilState
  : public RenderFragment_i_
{
private:
  DXDepthStencilState* m_ptr_depth_stencil_state;
  UINT                 m_stencil_ref;

public:
  DXDepthStencilState* GetDXResource() const { return m_ptr_depth_stencil_state; }

  HRESULT
    Create
      ( _in<DX_DEPTH_STENCIL_DESC> in_depth_stencil_desc
      , _in<UINT                 > in_stencil_ref = 0
      );

  DepthStencilState
  ( _in<DX_DEPTH_STENCIL_DESC> in_depth_stencil_desc
  , _in<UINT                 > in_stencil_ref = 0
  );

  ~DepthStencilState();

  HRESULT RenderSetup( DXDeviceContext* in_ptr_d3d_IC );
};


} // namespace DX
} // namespace CPL
