bool CEffectVertexShader::Load() { CreateShaderMacro(); ID3DBlob *l_VSBlob = NULL; bool l_Loaded = LoadShader(m_Filename, m_EntryPoint, m_ShaderModel, &l_VSBlob); if (!l_Loaded) return false; /*CRenderManager &l_RenderManager = UABEngine.GetRenderManager(); ID3D11Device *l_Device = l_RenderManager.GetDevice();*/ CRenderManager* l_RenderManager = UABEngine.GetRenderManager(); ID3D11Device *l_Device = l_RenderManager->GetDevice(); HRESULT l_HR = l_Device->CreateVertexShader(l_VSBlob->GetBufferPointer(), l_VSBlob->GetBufferSize(), NULL, &m_VertexShader); if (FAILED(l_HR)) { l_VSBlob->Release(); return false; } if (m_VertexType == "MV_POSITION_NORMAL_TEXTURE_VERTEX") l_Loaded = MV_POSITION_NORMAL_TEXTURE_VERTEX::CreateInputLayout(l_RenderManager, l_VSBlob, &m_VertexLayout); else //Info("Vertex type '%s' not recognized on CEffectVertexShader::Load", m_VertexType.c_str()); printf("Vertex type '%s' not recognized on CEffectVertexShader::Load", m_VertexType.c_str()); l_VSBlob->Release(); if (!l_Loaded) return false; return CreateConstantBuffer(); }
bool CEffectGeometryShader::Load() { CreateShaderMacro(); ID3DBlob *l_PSBlob = NULL; bool l_Loaded = LoadShader(m_Filename.c_str(), m_EntryPoint.c_str(), m_ShaderModel.c_str(), &l_PSBlob); if (!l_Loaded) return false; ID3D11Device *l_Device = CEngine::GetSingleton().getContextManager()->GetDevice(); HRESULT l_HR = l_Device->CreateGeometryShader(l_PSBlob->GetBufferPointer(), l_PSBlob->GetBufferSize(), NULL, &m_GeometryShader); l_PSBlob->Release(); return CreateConstantBuffer(); }
bool CEffectPixelShader::Load() { CreateShaderMacro(); ID3DBlob *l_PSBlob = NULL; bool l_Loaded = LoadShader(m_Filename.c_str(), m_EntryPoint.c_str(), m_ShaderModel.c_str(), &l_PSBlob); if (!l_Loaded) return false; /*CRenderManager &l_RenderManager = UABEngine.GetRenderManager(); ID3D11Device *l_Device = l_RenderManager.GetDevice();*/ CRenderManager* l_RenderManager = UABEngine.GetRenderManager(); ID3D11Device *l_Device = l_RenderManager->GetDevice(); HRESULT l_HR = l_Device->CreatePixelShader(l_PSBlob->GetBufferPointer(), l_PSBlob->GetBufferSize(), NULL, &m_PixelShader); l_PSBlob->Release(); return CreateConstantBuffer(); }
bool CEffectVertexShader::Load() { CreateShaderMacro(); ID3DBlob *l_VSBlob = NULL; bool l_Loaded = LoadShader(m_Filename, m_EntryPoint, m_ShaderModel, &l_VSBlob); DEBUG_ASSERT(l_Loaded); if (!l_Loaded) { return false; } CContextManager &l_context = *CEngine::GetSingleton().getContextManager(); ID3D11Device *l_Device = l_context.GetDevice(); HRESULT l_HR = l_Device->CreateVertexShader(l_VSBlob->GetBufferPointer(), l_VSBlob->GetBufferSize(), NULL, &m_VertexShader); DEBUG_ASSERT(!FAILED(l_HR)); if (FAILED(l_HR)) { l_VSBlob->Release(); return false; } if (m_VertexType == "MV_POSITION_TEXTURE_VERTEX") { l_Loaded = MV_POSITION_TEXTURE_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "MV_POSITION_NORMAL_TEXTURE_VERTEX") { l_Loaded = MV_POSITION_NORMAL_TEXTURE_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "MV_POSITION4_COLOR_TEXTURE_VERTEX") { l_Loaded = MV_POSITION4_COLOR_TEXTURE_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "MV_POSITION_NORMAL_TEXTURE_TEXTURE2_VERTEX") { l_Loaded = MV_POSITION_NORMAL_TEXTURE_TEXTURE2_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "MV_POSITION_NORMAL_TANGENT_BINORMAL_TEXTURE_VERTEX") { l_Loaded = MV_POSITION_NORMAL_TANGENT_BINORMAL_TEXTURE_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "MV_POSITION_NORMAL_TANGENT_BINORMAL_TEXTURE_TEXTURE2_VERTEX") { l_Loaded = MV_POSITION_NORMAL_TEXTURE_TEXTURE2_TANGENT_BINORMAL_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "MV_POSITION_NORMAL_TEXTURE_WEIGHT_INDICES_VERTEX") { l_Loaded = MV_POSITION_WEIGHT_INDICES_NORMAL_TEXTURE_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "MV_POSITION_NORMAL_TANGENT_BINORMAL_TEXTURE_WEIGHT_INDICES_VERTEX") { l_Loaded = MV_POSITION_WEIGHT_INDICES_NORMAL_TANGENT_BINORMAL_TEXTURE_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "MV_POSITION_NORMAL_TANGENT_BINORMAL_TEXTURE_TEXTURE2_WEIGHT_INDICES_VERTEX") { l_Loaded = MV_POSITION_WEIGHT_INDICES_NORMAL_TANGENT_BINORMAL_TEXTURE_TEXTURE2_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "MV_POSITION_NORMAL_TEXTURE_TEXTURE2_TANGENT_BINORMAL_VERTEX") { l_Loaded = MV_POSITION_NORMAL_TEXTURE_TEXTURE2_TANGENT_BINORMAL_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "MV_POSITION_COLOR_VERTEX") { l_Loaded = MV_POSITION_COLOR_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "MV_POSITION_NORMAL_TANGENT_BINORMAL_TEXTURE_WEIGHT_INDICES_VERTEX") { l_Loaded = MV_POSITION_WEIGHT_INDICES_NORMAL_TANGENT_BINORMAL_TEXTURE_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "MV_POSITION_NORMAL_TANGENT_BINORMAL_TEXTURE_TEXTURE2_WEIGHT_INDICES_VERTEX") { l_Loaded = MV_POSITION_WEIGHT_INDICES_NORMAL_TANGENT_BINORMAL_TEXTURE_TEXTURE2_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "PARTICLE_VERTEX") { l_Loaded = PARTICLE_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "GUI_VERTEX") { l_Loaded = GUI_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else if (m_VertexType == "GUI_TEXT_VERTEX") { l_Loaded = GUI_TEXT_VERTEX::CreateInputLayout(l_Device, l_VSBlob, &m_VertexLayout); } else { DEBUG_ASSERT(!"Vertex type '%s' not recognized on CEffectVertexShader::Load"); } l_VSBlob->Release(); DEBUG_ASSERT(l_Loaded); if (!l_Loaded) return false; return CreateConstantBuffer(); }