mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-30 01:29:42 -06:00
Renderer: Change SetBlendState to accept a BlendingState
This decouples the state generation (from the emulated GPU) from the management of internal backend state.
This commit is contained in:
@ -1264,11 +1264,8 @@ void Renderer::ReinterpretPixelData(unsigned int convtype)
|
||||
}
|
||||
}
|
||||
|
||||
void Renderer::SetBlendMode(bool forceUpdate)
|
||||
void Renderer::SetBlendingState(const BlendingState& state)
|
||||
{
|
||||
BlendingState state;
|
||||
state.Generate(bpmem);
|
||||
|
||||
bool useDualSource =
|
||||
state.usedualsrc && g_ActiveConfig.backend_info.bSupportsDualSourceBlend &&
|
||||
(!DriverDetails::HasBug(DriverDetails::BUG_BROKEN_DUAL_SOURCE_BLENDING) || state.dstalpha);
|
||||
@ -1791,7 +1788,7 @@ void Renderer::RestoreAPIState()
|
||||
SetGenerationMode();
|
||||
BPFunctions::SetScissor();
|
||||
SetDepthMode();
|
||||
SetBlendMode(true);
|
||||
BPFunctions::SetBlendMode();
|
||||
SetViewport();
|
||||
|
||||
ProgramShaderCache::BindLastVertexFormat();
|
||||
|
@ -77,7 +77,7 @@ public:
|
||||
void Init();
|
||||
void Shutdown();
|
||||
|
||||
void SetBlendMode(bool forceUpdate) override;
|
||||
void SetBlendingState(const BlendingState& state) override;
|
||||
void SetScissorRect(const EFBRectangle& rc) override;
|
||||
void SetGenerationMode() override;
|
||||
void SetDepthMode() override;
|
||||
|
Reference in New Issue
Block a user