raSystem  1.0 bata
raRTTMaterial.cpp
Go to the documentation of this file.
1 #include "..\include\raMain.h"
2 
3 namespace System
4 {
6  LPCSTR technique,
7  D3D11_SRV_DIMENSION viewDimension,
8  int envMapWidth,
9  int enyMapHeight,
10  int mipLevels,
11  DXGI_FORMAT fmt,
12  LPCSTR effectVariableName,
13  UINT arraySize) : raTexturedMaterial(dx, effectFile, technique, "RTT",
14  effectVariableName),
15  m_renderScreen(dx, envMapWidth, enyMapHeight, mipLevels,
16  fmt, arraySize)
17  {
18  m_ViewDimension = viewDimension;
19  }
20 
22  {
23  if(!raMaterial::Create())
24  {
25  RERROR("Beim Erstellen von raMaterial ");
26  return false;
27  }
29  if(!m_pRenderTexture)
30  {
32  return false;
33  }
34 
35  D3D11_SHADER_RESOURCE_VIEW_DESC desc;
36  memset(&desc, 0, sizeof(desc));
37  desc.Format = m_renderScreen.GetFormat();
38  desc.ViewDimension = m_ViewDimension;
39 
40  UINT arraySize = m_renderScreen.GetArraySize();
41  if(arraySize > 1)
42  {
43  desc.Texture2DArray.FirstArraySlice = 0;
44  desc.Texture2DArray.ArraySize = arraySize;
45  desc.Texture2DArray.MipLevels = m_renderScreen.GetMipLevels();
46  desc.Texture2DArray.MostDetailedMip = 0;
47  }
48  else
49  {
50  desc.Texture2D.MipLevels = m_renderScreen.GetMipLevels();
51  desc.Texture2D.MostDetailedMip = 0;
52  }
53  HRESULT hr = m_dx->GetDevice()->CreateShaderResourceView(m_pRenderTexture, &desc, &m_pRV);
54  if(FAILED(hr))
55  {
56  RERROR_DX11("CreateShaderResourceView", hr);
57  return false;
58  }
59 
60  m_ptxDiffuseVariable = m_pEffect->GetVariableByName(m_effectVariableName)->AsShaderResource();
61 
62  ROK("raRenderTexturedMaterial erstellt");
63 
64  return true;
65  }
67  {
69 
70  if(m_pRenderTexture) m_pRenderTexture->Release();
72 
73  return true;
74  }
75 
76  void raRTTMaterial::GetSizeFromBackBuffer(const DXGI_SURFACE_DESC* desc)
77  {
78  }
79 };
D3D11_SRV_DIMENSION m_ViewDimension
Definition: raRTTMaterial.h:20
ID3D11Texture2D * CreateRenderTarget()
ID3D11ShaderResourceView * m_pRV
virtual bool Destroy()
virtual bool Create()
Definition: raMaterial.cpp:56
raRenderScreen m_renderScreen
Definition: raRTTMaterial.h:22
void GetSizeFromBackBuffer(const DXGI_SURFACE_DESC *desc)
void RAPI RERROR_DX11(raString x, HRESULT h)
Definition: raMain.cpp:156
ID3D11Device * GetDevice(void)
Definition: raDirectX.h:29
ID3DX11Effect * m_pEffect
Definition: raMaterial.h:57
raRTTMaterial(raSmartPointer< raDirectX >, LPCSTR effectFile="raEffects\oNormals.fx", LPCSTR technique="RenderWithTexture", D3D11_SRV_DIMENSION viewDimension=D3D11_SRV_DIMENSION_TEXTURE2D, int envMapWidth=128, int enyMapHeight=128, int mipLevels=1, DXGI_FORMAT fmt=DXGI_FORMAT_R16G16B16A16_FLOAT, LPCSTR effectVariableName="g_MeshTexture", UINT arraySize=1)
ID3D11Texture2D * m_pRenderTexture
Definition: raRTTMaterial.h:21
void RAPI ROK(raString x)
Definition: raMain.cpp:114
DXGI_FORMAT GetFormat()
ID3DX11EffectShaderResourceVariable * m_ptxDiffuseVariable
raSmartPointer< raDirectX > m_dx
Definition: raMaterial.h:53
void RAPI RERROR_OUTOFMEM()
Definition: raMain.cpp:144
virtual void Destroy()
virtual bool Create()
void RAPI RERROR(raString x)
Definition: raMain.cpp:129