raSystem  1.0 bata
raMaterial.h
Go to the documentation of this file.
1 #pragma once
2 
3  typedef std::map<raString, ID3DX11Effect*> raEffectMap;
4 
5  class RAPI raMaterial // MATERIAL
6  {
7  public:
8  raMaterial(raSmartPointer<raDirectX> dx, raString EffectFile, raString Technique);
9  ~raMaterial(void);
10 
11  virtual bool Create();
12  virtual bool Destroy();
13  virtual bool CreateVertexLayout(const D3D11_INPUT_ELEMENT_DESC* pLayout,
14  UINT nemElements, ID3D11InputLayout** ppInputLayout);
15 
16  virtual void Setup();
17  virtual void SetupPerFrame(const raLight* Light, const raMatrix* pView = NULL,
18  const raMatrix* pProj = NULL);
19  virtual void SetupPerObject(const raMatrix& mWorld, const raMatrix& mWorldView,
20  const raMatrix& mWorldViewProjection);
21 
22  void SetAmbientColor(raColor Ambient) { m_AmbientColor = Ambient; }
23  void SetDiffuseColor(raColor Diffuse) { m_DiffuseColor = Diffuse; }
24  void SetTechnique(LPCSTR TechniqueName)
25  {
26  m_TechniqueName = TechniqueName;
27  m_pTechnique = m_pEffect->GetTechniqueByName(TechniqueName);
28  }
29 
30  ID3DX11Effect* GetEffect(void) { return m_pEffect; }
31  ID3DX11EffectTechnique* GetEffectTechnique(LPCSTR techniqueName = "")
32  {
33  if(!strcmp("", techniqueName))
34  return m_pTechnique;
35  else
36  return m_pEffect->GetTechniqueByName(techniqueName);
37  }
38  raString GetTechniqueName(void) { return m_TechniqueName; }
39  raString GetEffectFileName(void) { return m_EffectFileName; }
40 
41  void SelectTechnique(raString techniqueName)
42  {
43  m_TechniqueName = techniqueName;
44  m_pTechnique = m_pEffect->
45  GetTechniqueByName(techniqueName.c_str());
46  }
47 
50  protected:
51  void CreateEffectFromCompiledFile(raString strFilename, DWORD dwShaderFlags);
52  protected:
56 
62 
65  };
raColor m_AmbientColor
Definition: raMaterial.h:64
void SetTechnique(LPCSTR TechniqueName)
Definition: raMaterial.h:24
Definition: raLight.h:5
raString GetEffectFileName(void)
Definition: raMaterial.h:39
raColor m_DiffuseColor
Definition: raMaterial.h:63
#define RAPI
Definition: raMain.h:11
void SelectTechnique(raString techniqueName)
Definition: raMaterial.h:41
interface ID3DX11EffectTechnique ID3DX11EffectTechnique
Definition: raColor.h:5
ID3DX11Effect * m_pEffect
Definition: raMaterial.h:57
ID3DX11EffectScalarVariable * m_pSelectedVariable
Definition: raMaterial.h:61
interface ID3DX11EffectVectorVariable ID3DX11EffectVectorVariable
Definition: d3dx11effect.h:278
void SetAmbientColor(raColor Ambient)
Definition: raMaterial.h:22
void SetDiffuseColor(raColor Diffuse)
Definition: raMaterial.h:23
ID3DX11EffectTechnique * m_pTechnique
Definition: raMaterial.h:58
bool m_bSelected
Definition: raMaterial.h:49
static raEffectMap m_effects
Definition: raMaterial.h:48
std::map< raString, ID3DX11Effect * > raEffectMap
Definition: raMaterial.h:3
interface ID3DX11Effect ID3DX11Effect
interface ID3DX11EffectScalarVariable ID3DX11EffectScalarVariable
Definition: d3dx11effect.h:277
raString m_EffectFileName
Definition: raMaterial.h:54
std::string raString
Definition: raMain.h:107
raSmartPointer< raDirectX > m_dx
Definition: raMaterial.h:53
ID3DX11Effect * GetEffect(void)
Definition: raMaterial.h:30
raString GetTechniqueName(void)
Definition: raMaterial.h:38
ID3DX11EffectVectorVariable * m_pMaterialDiffuseColorVariable
Definition: raMaterial.h:59
ID3DX11EffectTechnique * GetEffectTechnique(LPCSTR techniqueName="")
Definition: raMaterial.h:31
ID3DX11EffectVectorVariable * m_pMaterialAmbientVariable
Definition: raMaterial.h:60
raString m_TechniqueName
Definition: raMaterial.h:55