1 #include "..\include\raMain.h" 15 hFile = CreateFile(strFilename.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL,
16 OPEN_EXISTING, 0, NULL );
19 dwFileSize = GetFileSizeEx(hFile, NULL);
20 if(dwFileSize != INVALID_FILE_SIZE)
22 pData = CoTaskMemAlloc(dwFileSize);
25 ReadFile(hFile, pData, dwFileSize,
29 dwShaderFlags, m_dx->GetDevice(), &m_pEffect);
36 m_DiffuseColor(1.0f), m_AmbientColor(0.5f)
65 DWORD dwShaderFlags = D3D10_SHADER_ENABLE_STRICTNESS;
76 ID3DBlob* pBlob = NULL;
77 D3DX11CompileFromFile(
m_EffectFileName.c_str(), NULL, NULL,
"",
"fx_5_0", dwShaderFlags, 0, NULL,
91 m_pEffect->GetVariableByName(
"g_MaterialDiffuseColor")->AsVector();
93 m_pEffect->GetVariableByName(
"g_MaterialAmbientColor")->AsVector();
95 m_pEffect->GetVariableByName(
"g_bSelected" )->AsScalar();
105 const D3D11_INPUT_ELEMENT_DESC* pLayout,
106 UINT numElements, ID3D11InputLayout** ppInputLayout)
110 HRESULT hr =
m_dx->
GetDevice()->CreateInputLayout(pLayout, numElements,
125 m_pEffect->GetVariableByName(
"g_mWorldViewProjection")->
127 m_pmWorldViewProj->SetMatrix((
float*)&mWorldViewProjection);
128 m_pEffect->GetVariableByName(
"g_mWorldView" )->AsMatrix()->
129 SetMatrix((
float*)&mWorldView);
130 m_pEffect->GetVariableByName(
"g_mWorld" )->AsMatrix()->
131 SetMatrix((
float*)&mWorld);
139 m_pEffect->GetVariableByName(
"g_vLightDir")->AsVector()->
140 SetFloatVector(lightDir);
142 m_pEffect->GetVariableByName(
"g_LightDiffuse")->AsVector()->
143 SetFloatVector((
float*)&lightDiffuseColor);
150 m_pEffect->GetVariableByName(
"g_mView")->AsMatrix();
151 if(pmView)pmView->SetMatrix((
float*)pView);
156 m_pEffect->GetVariableByName(
"g_mProj")->AsMatrix();
157 if(pmProj)pmProj->SetMatrix((
float*)pProj);
virtual void SetupPerFrame(const raLight *Light, const raMatrix *pView=NULL, const raMatrix *pProj=NULL)
HRESULT WINAPI D3DX11CreateEffectFromMemory(CONST void *pData, SIZE_T DataLength, UINT FXFlags, ID3D11Device *pDevice, ID3DX11Effect **ppEffect)
void RAPI RERROR_DX11(raString x, HRESULT h)
ID3D11Device * GetDevice(void)
ID3DX11Effect * m_pEffect
SIZE_T IAInputSignatureSize
ID3DX11EffectScalarVariable * m_pSelectedVariable
void CreateEffectFromCompiledFile(raString strFilename, DWORD dwShaderFlags)
ID3DX11EffectTechnique * m_pTechnique
virtual bool CreateVertexLayout(const D3D11_INPUT_ELEMENT_DESC *pLayout, UINT nemElements, ID3D11InputLayout **ppInputLayout)
raMaterial(raSmartPointer< raDirectX > dx, raString EffectFile, raString Technique)
static raEffectMap m_effects
std::map< raString, ID3DX11Effect * > raEffectMap
raString m_EffectFileName
ID3D11Buffer D3D11_BUFFER_DESC void * pData
raSmartPointer< raDirectX > m_dx
interface ID3DX11EffectMatrixVariable ID3DX11EffectMatrixVariable
virtual void SetupPerObject(const raMatrix &mWorld, const raMatrix &mWorldView, const raMatrix &mWorldViewProjection)
ID3DX11EffectVectorVariable * m_pMaterialDiffuseColorVariable
ID3DX11EffectVectorVariable * m_pMaterialAmbientVariable