/// ****************************************************************************
/// @file   
/// @author Dr.Neeton
/// @date   200X/X/X - 2014/01/24
/// 
/// @brief  DirectX  ブレンドステートヘルパー。
/// 
/// ****************************************************************************

#pragma once

#include "CPL_DX_RenderFragment.h"

namespace CPL {
namespace DX {


// _____________________________________________________________________________
/// @brief ブレンドステートヘルパークラス
///
// *****************************************************************************
class BlendState
  : public RenderFragment_i_
{
private:
  DXBlendState* m_ptr_blend_state;
  // ブレンディング係数
  // ※ D3D11_BLEND_BLEND_FACTOR or D3D11_BLEND_INV_BLEND_FACTOR
  //    を指定した場合にのみ使用
  float         m_blend_factor[4];
  UINT          m_sample_mask;

public:
  DXBlendState* GetDXResource() const { return m_ptr_blend_state; }

  HRESULT Create( _in<DX_BLEND_DESC> in_blend_desc );

  BlendState( _in<DX_BLEND_DESC> in_blend_desc );
  ~BlendState();

  HRESULT RenderSetup( DXDeviceContext* in_ptr_d3d_IC );
};


} // namespace DX
} // namespace CPL
