mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
Merge pull request #5337 from stenzek/d3d-common-blending-state
D3D: Use blending state from VideoCommon
This commit is contained in:
@ -8,6 +8,7 @@
|
||||
#include "VideoCommon/BPFunctions.h"
|
||||
#include "VideoCommon/BPMemory.h"
|
||||
#include "VideoCommon/RenderBase.h"
|
||||
#include "VideoCommon/RenderState.h"
|
||||
#include "VideoCommon/VertexManagerBase.h"
|
||||
#include "VideoCommon/VideoCommon.h"
|
||||
#include "VideoCommon/VideoConfig.h"
|
||||
@ -72,17 +73,9 @@ void SetDepthMode()
|
||||
|
||||
void SetBlendMode()
|
||||
{
|
||||
g_renderer->SetBlendMode(false);
|
||||
}
|
||||
|
||||
void SetLogicOpMode()
|
||||
{
|
||||
g_renderer->SetLogicOpMode();
|
||||
}
|
||||
|
||||
void SetColorMask()
|
||||
{
|
||||
g_renderer->SetColorMask();
|
||||
BlendingState state;
|
||||
state.Generate(bpmem);
|
||||
g_renderer->SetBlendingState(state);
|
||||
}
|
||||
|
||||
/* Explanation of the magic behind ClearScreen:
|
||||
|
@ -19,8 +19,6 @@ void SetGenerationMode();
|
||||
void SetScissor();
|
||||
void SetDepthMode();
|
||||
void SetBlendMode();
|
||||
void SetLogicOpMode();
|
||||
void SetColorMask();
|
||||
void ClearScreen(const EFBRectangle& rc);
|
||||
void OnPixelFormatChange();
|
||||
void SetInterlacingMode(const BPCmd& bp);
|
||||
|
@ -148,17 +148,7 @@ static void BPWritten(const BPCmd& bp)
|
||||
bpmem.blendmode.dstfactor.Value(), bpmem.blendmode.srcfactor.Value(),
|
||||
bpmem.blendmode.subtract.Value(), bpmem.blendmode.logicmode.Value());
|
||||
|
||||
// Set Blending Mode
|
||||
if (bp.changes)
|
||||
SetBlendMode();
|
||||
|
||||
// Set LogicOp Blending Mode
|
||||
if (bp.changes & 0xF002) // logicopenable | logicmode
|
||||
SetLogicOpMode();
|
||||
|
||||
// Set Color Mask
|
||||
if (bp.changes & 0x18) // colorupdate | alphaupdate
|
||||
SetColorMask();
|
||||
SetBlendMode();
|
||||
|
||||
// Dither
|
||||
if (bp.changes & 0x04)
|
||||
@ -331,7 +321,6 @@ static void BPWritten(const BPCmd& bp)
|
||||
if (bp.changes)
|
||||
{
|
||||
PixelShaderManager::SetAlphaTestChanged();
|
||||
g_renderer->SetColorMask();
|
||||
SetBlendMode();
|
||||
}
|
||||
return;
|
||||
@ -420,11 +409,7 @@ static void BPWritten(const BPCmd& bp)
|
||||
case BPMEM_ZCOMPARE: // Set the Z-Compare and EFB pixel format
|
||||
OnPixelFormatChange();
|
||||
if (bp.changes & 7)
|
||||
{
|
||||
SetBlendMode(); // dual source could be activated by changing to PIXELFMT_RGBA6_Z24
|
||||
g_renderer->SetColorMask(); // alpha writing needs to be disabled if the new pixel format
|
||||
// doesn't have an alpha channel
|
||||
}
|
||||
PixelShaderManager::SetZModeControl();
|
||||
return;
|
||||
|
||||
@ -1414,8 +1399,6 @@ void BPReload()
|
||||
SetGenerationMode();
|
||||
SetScissor();
|
||||
SetDepthMode();
|
||||
SetLogicOpMode();
|
||||
SetBlendMode();
|
||||
SetColorMask();
|
||||
OnPixelFormatChange();
|
||||
}
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "VideoCommon/AVIDump.h"
|
||||
#include "VideoCommon/BPMemory.h"
|
||||
#include "VideoCommon/FPSCounter.h"
|
||||
#include "VideoCommon/RenderState.h"
|
||||
#include "VideoCommon/VideoCommon.h"
|
||||
|
||||
class PostProcessingShaderImplementation;
|
||||
@ -63,12 +64,10 @@ public:
|
||||
PP_EFB_COPY_CLOCKS
|
||||
};
|
||||
|
||||
virtual void SetColorMask() {}
|
||||
virtual void SetBlendMode(bool forceUpdate) {}
|
||||
virtual void SetBlendingState(const BlendingState& state) {}
|
||||
virtual void SetScissorRect(const EFBRectangle& rc) {}
|
||||
virtual void SetGenerationMode() {}
|
||||
virtual void SetDepthMode() {}
|
||||
virtual void SetLogicOpMode() {}
|
||||
virtual void SetSamplerState(int stage, int texindex, bool custom_tex) {}
|
||||
virtual void SetInterlacingMode() {}
|
||||
virtual void SetViewport() {}
|
||||
|
Reference in New Issue
Block a user