raSystem  1.0 bata
raTesselatinObject.cpp
Go to the documentation of this file.
1 #include "..\include\raMain.h"
2 
3 namespace System
4 {
6  new raProceduralMaterial(dx, 64, "raEffects\\Terrain.fx", "Terrain"))
7  {
8  m_nVertices = 1;
9  m_TesselationsFactor = 10;
10  }
12  {
14 
15  m_pVertices[0].position.x = 0.0f;
16  m_pVertices[0].position.y = 0.0f;
17  m_pVertices[0].position.z = 0.0f;
18  }
20  const raLight* pLight)
21  {
22  raEntity::SetupEffectVariables(pView, pProj, pLight);
23 
24  ID3DX11Effect * pEffect = GetMaterial(0)->GetEffect();
25 
26  ID3DX11EffectScalarVariable* pTeFactor = pEffect->GetVariableByName("g_fTessellationFactor")->AsScalar();
27 
28  if(pTeFactor)
29  pTeFactor->SetFloat(m_TesselationsFactor);
30  }
31  bool raTesselatinObject::RenderMesh(LPCSTR techniqueName)
32  {
33  m_dx->GetImmediateContext()->IASetInputLayout(m_pVertexLayout);
34  m_dx->GetImmediateContext()->IASetPrimitiveTopology(
35  D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST);
36 
37  UINT Strides[1];
38  UINT Offsets[1];
39 
40  Strides[0] = GetStrideSize();
41  Offsets[0] = 0;
42 
43  m_dx->GetImmediateContext()->IASetVertexBuffers(0, 1, &m_pVB, Strides, Offsets);
44 
45  m_pMaterials[0]->Setup();
46 
48 
49  if(pTechnique)
50  {
51  D3DX11_TECHNIQUE_DESC techDesc;
52  pTechnique->GetDesc(&techDesc);
53 
54  for(UINT p = 0; p < techDesc.Passes; ++p)
55  {
56  pTechnique->GetPassByIndex(p)->Apply(0, m_dx->GetImmediateContext());
58  }
59  }
60  return true;
61  }
62 };
raFloat y
Definition: raVector3.h:13
Definition: raLight.h:5
raFloat x
Definition: raVector3.h:12
virtual raMaterial * GetMaterial(UINT n)
Definition: raVisual.h:63
ID3D11DeviceContext * GetImmediateContext(void)
Definition: raDirectX.h:31
virtual void SetupEffectVariables(const raMatrix &pView, const raMatrix &pProj, const raLight *pLight)
Definition: raVisual.cpp:117
VERTEXPOSITION * m_pVertices
Definition: raEntity.h:39
interface ID3DX11EffectTechnique ID3DX11EffectTechnique
virtual void SetupVertices()
raFloat z
Definition: raVector3.h:14
virtual void SetupEffectVariables(const raMatrix &pView, const raMatrix &pProj, const raLight *pLight)
virtual void Setup()
Definition: raMaterial.cpp:160
ID3D11InputLayout * m_pVertexLayout
Definition: raVisual.h:100
raTesselatinObject(raDirectX *dx)
interface ID3DX11Effect ID3DX11Effect
interface ID3DX11EffectScalarVariable ID3DX11EffectScalarVariable
Definition: d3dx11effect.h:277
raMaterial ** m_pMaterials
Definition: raVisual.h:97
ID3DX11Effect * GetEffect(void)
Definition: raMaterial.h:30
raVector3 position
Definition: raVectexType.h:77
virtual bool RenderMesh(LPCSTR techniqueName="")
raSmartPointer< raDirectX > m_dx
Definition: raVisual.h:99
ID3DX11EffectTechnique * GetEffectTechnique(LPCSTR techniqueName="")
Definition: raMaterial.h:31