raSystem  1.0 bata
raVisual.h
Go to the documentation of this file.
1 #pragma once
2 
3  class RAPI raVisual : public raRender, public IRAMesh
4  {
5  public:
9 
14 
15  public:
16  raVisual( raSmartPointer<raDirectX> dx, bool bAlpha = false, bool bAdditive = false,
17  bool bDepthDisable = false, D3D11_FILL_MODE fillMode = D3D11_FILL_SOLID,
18  D3D11_CULL_MODE cullMode = D3D11_CULL_BACK);
19  ~raVisual(void);
20 
21  virtual bool CreateVertexLayout();
22  virtual bool Create();
23  virtual void Destroy();
24 
25  virtual void CreateEffectVariables() {};
26  virtual void DestroyEffectVariables() {};
27 
28  virtual void SetupEffectVariables(const raMatrix& pView, const raMatrix& pProj,
29  const raLight* pLight);
30  virtual bool Render(UINT drawOrder, const raMatrix &pView, const raMatrix &pProj,
31  const raLight* pLight, LPCSTR techniqueName = "");
32 
33  virtual void CreateMaterials();
34  virtual void DestroyMaterials();
35 
36  bool SetState();
37  bool RestoreState();
38 
39  virtual const D3D11_INPUT_ELEMENT_DESC* GetVertexLayout()
40  {
42  }
43 
44  virtual UINT GetNumElements()
45  {
47  }
48 
49  virtual UINT GetStrideSize()
50  {
51  return sizeof(VERTEXPOSITIONNORMALTEXTURED);
52  }
53 
54  virtual DXGI_FORMAT GetIndexBufferFormat()
55  {
56  return DXGI_FORMAT_R16_UINT;
57  }
58  // BoundingBox
61 
62  virtual UINT GetNumMaterials() { return m_numMaterials; }
63  virtual raMaterial *GetMaterial(UINT n) { return m_pMaterials[n]; }
64 
65  // Tauscht ein Material nur aus!!
66  void SetMaterial(UINT n, raMaterial* pMaterial);
67  // erst nach Create aufrufen ( Auswechesln eines nicht gemeinsam genutztes Material )
68  void SetMaterial_1(UINT n, raMaterial* pMaterial);
69  void SetTexture(UINT n, LPCSTR textureFileName);
70  void SetTexture_1(UINT n, LPCSTR textureFileName);
71 
72  virtual void SetVisible(bool bVisible);
73  virtual void SetDrawOder(UINT Value) { if(Value > RAMAX_DRAWODER) Value = RAMAX_DRAWODER; m_DrawOder = Value; }
74  virtual void SetSelected(bool bSelected) {};
75 
76  virtual const float GetBoundingsphereRadius()
77  {
78  if((float)m_bbMax.x > -FLT_MAX)
79  {
80  raVector3 center = 0.5f * (m_bbMin + m_bbMax);
81  raVector3 v = m_bbMax - center;
82  float r = RAMAX(m_World.m41 * (float)v.x,
83  RAMAX(m_World.m42 * (float)v.y, m_World.m43 * (float)v.z));
84  return r;
85  }
86  else
87  return 1;
88  }
89  protected:
90  bool CreateAlphaBlendState();
91  bool CreateDepthStencilState();
92  bool CreateRasterizerState();
93 
94  protected:
95  UINT m_DrawOder;
98 
100  ID3D11InputLayout* m_pVertexLayout;
101  ID3D11BlendState* m_pAlphaBlendState;
102  ID3D11BlendState* m_pOldAlphaBlendState;
103  ID3D11DepthStencilState* m_pDepthStencilState;
104  ID3D11DepthStencilState* m_pOldDepthStencilState;
105  ID3D11RasterizerState* m_pRasterState;
106  ID3D11RasterizerState* m_pOldRasterState;
107 
109  bool m_bAlpha;
111  float m_blendFactor[4];
113 
116 
117  D3D11_FILL_MODE m_FillMode;
118  D3D11_CULL_MODE m_CullMode;
119 
122  };
virtual void DestroyMaterials()=0
D3D11_CULL_MODE m_CullMode
Definition: raVisual.h:118
raFloat y
Definition: raVector3.h:13
Definition: raLight.h:5
ID3D11RasterizerState * m_pOldRasterState
Definition: raVisual.h:106
raFloat x
Definition: raVector3.h:12
raVector3 m_bbMax
Definition: raVisual.h:60
static raString SkinnedEffectfileName
Definition: raVisual.h:10
static raString TexturedTechniqueName
Definition: raVisual.h:8
virtual raMaterial * GetMaterial(UINT n)
Definition: raVisual.h:63
virtual void Destroy()
Definition: raRender.h:12
raVector3 m_bbMin
Definition: raVisual.h:59
UINT m_DrawOder
Definition: raVisual.h:95
#define RAPI
Definition: raMain.h:11
virtual void SetupEffectVariables(const raMatrix &pView, const raMatrix &pProj, const raLight *pLight)=0
UINT m_StencilRef
Definition: raVisual.h:115
virtual UINT GetStrideSize()
Definition: raVisual.h:49
UINT m_sampleMask
Definition: raVisual.h:112
static D3D11_INPUT_ELEMENT_DESC * GetVertexLayout()
Definition: raVectexType.h:7
bool m_bVisible
Definition: raVisual.h:108
ID3D11BlendState * m_pAlphaBlendState
Definition: raVisual.h:101
virtual UINT GetNumMaterials()
Definition: raVisual.h:62
#define RAMAX_DRAWODER
Definition: raMain.h:75
raFloat z
Definition: raVector3.h:14
static raString SkinnedTexturedTechniqueName
Definition: raVisual.h:13
DWORD m_numSubsets
Definition: raVisual.h:120
virtual void CreateMaterials()=0
ID3D11RasterizerState * m_pRasterState
Definition: raVisual.h:105
static raString SkinnedTechniqueName
Definition: raVisual.h:12
static raString TechniqueName
Definition: raVisual.h:7
virtual void CreateEffectVariables()
Definition: raVisual.h:25
ID3D11InputLayout * m_pVertexLayout
Definition: raVisual.h:100
virtual const D3D11_INPUT_ELEMENT_DESC * GetVertexLayout()
Definition: raVisual.h:39
virtual DXGI_FORMAT GetIndexBufferFormat()
Definition: raVisual.h:54
SDKMESH_SUBSET * m_pSubsets
Definition: raVisual.h:121
ID3D11BlendState * m_pOldAlphaBlendState
Definition: raVisual.h:102
bool m_bAdditive
Definition: raVisual.h:110
virtual void SetSelected(bool bSelected)
Definition: raVisual.h:74
#define RAMAX(a, b)
Definition: raMain.h:128
virtual bool Render(UINT drawOrder, const raMatrix &pView, const raMatrix &pProj, const raLight *pLight, LPCSTR techniqueName="")
Definition: raRender.h:14
virtual void SetVisible(bool bVisible)
Definition: raRender.h:22
std::string raString
Definition: raMain.h:107
raMaterial ** m_pMaterials
Definition: raVisual.h:97
virtual UINT GetNumElements()
Definition: raVisual.h:44
Definition: IRAMesh.h:3
D3D11_FILL_MODE m_FillMode
Definition: raVisual.h:117
ID3D11DepthStencilState * m_pDepthStencilState
Definition: raVisual.h:103
bool m_bDepthDisable
Definition: raVisual.h:114
bool m_bAlpha
Definition: raVisual.h:109
static raString SkinnedEffectfileName2
Definition: raVisual.h:11
virtual void SetDrawOder(UINT Value)
Definition: raVisual.h:73
virtual const float GetBoundingsphereRadius()
Definition: raVisual.h:76
virtual bool Create()
Definition: raRender.h:11
virtual void DestroyEffectVariables()
Definition: raVisual.h:26
ID3D11DepthStencilState * m_pOldDepthStencilState
Definition: raVisual.h:104
raSmartPointer< raDirectX > m_dx
Definition: raVisual.h:99
static raString EffectfileName
Definition: raVisual.h:6
DWORD m_numMaterials
Definition: raVisual.h:96