AbstractPipeline: Allow setting pipeline to null

This commit is contained in:
Stenzek 2018-02-24 23:13:00 +10:00
parent 5e5dfe686a
commit bfb4709c80
2 changed files with 5 additions and 0 deletions

View File

@ -299,6 +299,8 @@ void Renderer::UpdateUtilityVertexBuffer(const void* vertices, u32 vertex_stride
void Renderer::SetPipeline(const AbstractPipeline* pipeline)
{
const DXPipeline* dx_pipeline = static_cast<const DXPipeline*>(pipeline);
if (!dx_pipeline)
return;
D3D::stateman->SetRasterizerState(dx_pipeline->GetRasterizerState());
D3D::stateman->SetDepthState(dx_pipeline->GetDepthState());

View File

@ -1622,6 +1622,9 @@ void Renderer::SetPipeline(const AbstractPipeline* pipeline)
// Not all shader changes currently go through SetPipeline, so we can't
// test if the pipeline hasn't changed and skip these applications. Yet.
m_graphics_pipeline = static_cast<const OGLPipeline*>(pipeline);
if (!m_graphics_pipeline)
return;
ApplyRasterizationState(m_graphics_pipeline->GetRasterizationState());
ApplyDepthState(m_graphics_pipeline->GetDepthState());
ApplyBlendingState(m_graphics_pipeline->GetBlendingState());