mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 17:19:44 -06:00
VideoCommon: Make dst_alpha state implicit.
This commit is contained in:
@ -33,9 +33,9 @@ void ShaderCache<Uid>::Clear()
|
||||
}
|
||||
|
||||
template <typename Uid>
|
||||
bool ShaderCache<Uid>::SetShader(DSTALPHA_MODE dst_alpha_mode, u32 primitive_type)
|
||||
bool ShaderCache<Uid>::SetShader(u32 primitive_type)
|
||||
{
|
||||
Uid uid = GetUid(dst_alpha_mode, primitive_type, APIType::OpenGL);
|
||||
Uid uid = GetUid(primitive_type, APIType::OpenGL);
|
||||
|
||||
// Check if the shader is already set
|
||||
if (m_last_entry)
|
||||
|
@ -22,10 +22,10 @@ public:
|
||||
virtual ~ShaderCache();
|
||||
|
||||
void Clear();
|
||||
bool SetShader(DSTALPHA_MODE dst_alpha_mode, u32 primitive_type);
|
||||
bool SetShader(u32 primitive_type);
|
||||
|
||||
protected:
|
||||
virtual Uid GetUid(DSTALPHA_MODE dst_alpha_mode, u32 primitive_type, APIType api_type) = 0;
|
||||
virtual Uid GetUid(u32 primitive_type, APIType api_type) = 0;
|
||||
virtual ShaderCode GenerateCode(APIType api_type, Uid uid) = 0;
|
||||
|
||||
private:
|
||||
@ -40,8 +40,7 @@ public:
|
||||
static std::unique_ptr<VertexShaderCache> s_instance;
|
||||
|
||||
protected:
|
||||
VertexShaderUid GetUid(DSTALPHA_MODE dst_alpha_mode, u32 primitive_type,
|
||||
APIType api_type) override
|
||||
VertexShaderUid GetUid(u32 primitive_type, APIType api_type) override
|
||||
{
|
||||
return GetVertexShaderUid();
|
||||
}
|
||||
@ -57,8 +56,7 @@ public:
|
||||
static std::unique_ptr<GeometryShaderCache> s_instance;
|
||||
|
||||
protected:
|
||||
GeometryShaderUid GetUid(DSTALPHA_MODE dst_alpha_mode, u32 primitive_type,
|
||||
APIType api_type) override
|
||||
GeometryShaderUid GetUid(u32 primitive_type, APIType api_type) override
|
||||
{
|
||||
return GetGeometryShaderUid(primitive_type);
|
||||
}
|
||||
@ -74,9 +72,9 @@ public:
|
||||
static std::unique_ptr<PixelShaderCache> s_instance;
|
||||
|
||||
protected:
|
||||
PixelShaderUid GetUid(DSTALPHA_MODE dst_alpha_mode, u32 primitive_type, APIType api_type) override
|
||||
PixelShaderUid GetUid(u32 primitive_type, APIType api_type) override
|
||||
{
|
||||
return GetPixelShaderUid(dst_alpha_mode);
|
||||
return GetPixelShaderUid();
|
||||
}
|
||||
ShaderCode GenerateCode(APIType api_type, PixelShaderUid uid) override
|
||||
{
|
||||
|
@ -40,14 +40,11 @@ void VertexManager::ResetBuffer(u32 stride)
|
||||
IndexGenerator::Start(&m_local_i_buffer[0]);
|
||||
}
|
||||
|
||||
void VertexManager::vFlush(bool use_dst_alpha)
|
||||
void VertexManager::vFlush()
|
||||
{
|
||||
VertexShaderCache::s_instance->SetShader(
|
||||
use_dst_alpha ? DSTALPHA_DUAL_SOURCE_BLEND : DSTALPHA_NONE, m_current_primitive_type);
|
||||
GeometryShaderCache::s_instance->SetShader(
|
||||
use_dst_alpha ? DSTALPHA_DUAL_SOURCE_BLEND : DSTALPHA_NONE, m_current_primitive_type);
|
||||
PixelShaderCache::s_instance->SetShader(
|
||||
use_dst_alpha ? DSTALPHA_DUAL_SOURCE_BLEND : DSTALPHA_NONE, m_current_primitive_type);
|
||||
VertexShaderCache::s_instance->SetShader(m_current_primitive_type);
|
||||
GeometryShaderCache::s_instance->SetShader(m_current_primitive_type);
|
||||
PixelShaderCache::s_instance->SetShader(m_current_primitive_type);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
@ -21,7 +21,7 @@ protected:
|
||||
void ResetBuffer(u32 stride) override;
|
||||
|
||||
private:
|
||||
void vFlush(bool use_dst_alpha) override;
|
||||
void vFlush() override;
|
||||
std::vector<u8> m_local_v_buffer;
|
||||
std::vector<u16> m_local_i_buffer;
|
||||
};
|
||||
|
Reference in New Issue
Block a user